匹配所有 utf-8/unicode 小写字母形式的正确正则表达式是什么

2024-04-30

我想匹配all拉丁语块中的小写字母形式。简单的 '[a-z]' 仅匹配 U+0061 和 U+007A 之间的字符,而不匹配所有其他小写形式。

我想匹配所有小写字母,最重要的是,EFIGS 语言中使用的拉丁语块中的所有带重音的小写字母。

[a-zà-ý] 是一个开始,但仍然有大量其他小写字符(请参阅http://www.unicode.org/charts/PDF/U0000.pdf http://www.unicode.org/charts/PDF/U0000.pdf)。有推荐的方法吗?

仅供参考,我正在使用Python,但我怀疑这个问题是跨语言的。

Python 的内置“islower()”方法似乎做了正确的检查:

lower = ''
for c in xrange(0,2**16): 
  if unichr(c).islower(): 
    lower += unichr(c)

print lower 

Python 目前不支持正则表达式中的 Unicode 属性。看这个答案 https://stackoverflow.com/questions/1832893/python-regex-matching-unicode-properties/1836283#1836283的链接波尼古鲁玛图书馆 http://dev.pocoo.org/hg/sandbox/ponyguruma这确实支持他们。

使用这样的库,您可以使用\p{Ll}匹配 Unicode 字符串中的任何小写字母。

Unicode 标准中的每个字符都属于一个类别。\p{Ll}是小写字母的类别,而\p{L}包含“字母”类别之一中的所有字符(大写字母;小写字母;标题大写字母;修饰语字母;以及其他字母)。有关详细信息,请参阅《角色属性》一章统一码标准 http://www.unicode.org/versions/latest/。或者看这一页 http://www.regular-expressions.info/unicode.html有关在正则表达式中使用 Unicode 的详细解释。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

匹配所有 utf-8/unicode 小写字母形式的正确正则表达式是什么 的相关文章

随机推荐