正则表达式获取所有字母字符

时间:2015-04-08 07:29:14

标签: python regex special-characters

我希望[A-z]之类的内容符合所有字母字符以及öäü等内容。

如果我[A-ü]我得到可能拉丁语言使用的所有特殊字符,但它也允许其他内容,例如¿¿]|{}[¢§ø欰µ©¥

示例:https://regex101.com/r/tN9gA5/2

修改 我需要在python2中使用它。

2 个答案:

答案 0 :(得分:4)

根据您使用的正则表达式引擎,您可以使用^\p{L}+$正则表达式。 \p{L}表示一个unicode字母:

  

除了并发症,Unicode还带来了新的可能性。   一个是每个Unicode字符属于某个类别。您   可以匹配属于"字母的单个字符"类别   \ p {L}

Source

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öäüéàèÉÀÈéàè