我希望[A-z]
之类的内容符合所有字母字符以及ö
,ä
,ü
等内容。
如果我[A-ü]
我得到可能拉丁语言使用的所有特殊字符,但它也允许其他内容,例如¿¿]|{}[¢§ø欰µ©¥
示例:https://regex101.com/r/tN9gA5/2
修改 我需要在python2中使用它。
答案 0 :(得分:4)
根据您使用的正则表达式引擎,您可以使用^\p{L}+$
正则表达式。 \p{L}
表示一个unicode字母:
除了并发症,Unicode还带来了新的可能性。 一个是每个Unicode字符属于某个类别。您 可以匹配属于"字母的单个字符"类别 \ p {L}
This示例应说明我的意思。似乎Regex101上的正则表达式引擎支持这一点,你只需要从左上角选择PCRE(PHP)。
答案 1 :(得分:1)
当您使用[A-z]
时,您不仅会捕获从“A”到“z”的字母,还会捕获更多非字母字符:[ \ ] ^ _ `
。
在Python中,您可以使用[^\W\d_]
和re.U
选项来匹配Unicode字符(请参阅this post)。
Here is a sample根据您的输入字符串。
Python示例:
import re
r = re.search(
r'(?P<unicode_word>[^\W\d_]*)',
u'TestöäüéàèÉÀÈéàè',
re.U
)
print r.group('unicode_word')
>>> TestöäüéàèÉÀÈéàè