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

标签 python regex unicode utf-8

我想匹配拉丁 block 中的所有小写字母形式。平凡的 '[a-z]' 只匹配 U+0061 和 U+007A 之间的字符,而不是所有其他小写形式。

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

[a-zà-ý] 是一个开始,但仍有大量其他小写字符(参见 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 属性。见 this answer链接到 Ponyguruma library确实支持它们。

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

Unicode 标准中的每个字符都属于一个类别。 \p{Ll} 是小写字母的类别,而 \p{L} 包含“字母”类别之一中的所有字符(字母,大写字母;字母,小写;字母,标题;字母,修饰符;和字母,其他)。更多信息参见 Unicode Standard 的字符属性一章。 .或见 this page有关在正则表达式中使用 Unicode 的一个很好的解释。

关于python - 匹配所有 utf-8/unicode 小写字母形式的正确正则表达式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5224835/

相关文章:

Javascript 正则表达式替换影响单个单词

java - 无法解析 UTF-8 XML

json - Golang 解码/解码 JSON 中的无效 unicode

python - 在 numba nopython 函数中计算阶乘的最快方法

python - Sklearn Pipeline 添加新功能

c++ - 正则表达式中的 If-Then-Else 条件语句和使用捕获组

swift - 迭代字符串的 UTF8View 时显示的不同类型

python - Celery:我可以使用 Celery 一次执行一个函数实例吗?

python - Pyinstaller EXE 的 __file__ 指的是一个 .py 文件

javascript - ng-模式/ng-显示 AngularJS