Python正则表达式匹配仅包含字母字符的内容([A-Za-z],但适用于Unicode)。

5

我感到有些愚蠢地问这个问题,答案一定就在我的面前,但是我无法立即在这里或通过更广泛的谷歌搜索找到它。

什么是匹配字母字符(而不是数字)的Python正则表达式? 我正在寻找与[A-Za-z]等效且支持Unicode的表达式。


1
你认为什么是“字母字符”?如果有组合变音符号怎么办? - user2357112
正如Brad Solomon所说,我正在寻找\w但不包括数字和下划线。 "Alpha character"表示当前语言环境或Unicode语言环境定义的任何字母字符。 - iter
1个回答

6
所以你需要的似乎是 \w 的等效项(除非使用 re.ASCII 标志,否则它支持 Unicode),但没有数字。 (我假设没有下划线 - 这也是 \w 的一部分。)
你可以使用“双重否定”的等效项:排除不是单词字符的任何字符 \W 并排除数字 \d:
re.findall(r'\b[^\W\d_]+\b', 'Jalape\xf1o Jal99ape\xf1o')
# ['Jalapeño']

如果没有上述的单词边界,它会捕获 ['Jalapeño', 'Jal', 'apeño']


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接