我想匹配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(使用前将#替换为@)