python正则表达式中[:alpha:]的简写

时间:2013-05-29 09:22:07

标签: python regex unicode

如果我正在创建需要它的unicode正则表达式,那么等效于[:alpha:]

例如,对于[:word:],它是[\w]

如果我得到一些帮助,

会很棒。

2 个答案:

答案 0 :(得分:10)

对于Unicode合规性,您需要使用

regex = re.compile(r"[^\W\d_]", re.UNICODE)

当前的Python正则表达式引擎不支持Unicode字符属性(如\p{L})。

<强>解释

\w匹配(如果设置了Unicode标志)任何字母,数字或下划线。

[^\W]匹配相同的东西,但是对于否定的字符类,我们现在可以减去我们不想要包含的字符:

[^\W\d_]匹配\w次匹配,但没有数字(\d)或下划线(_)。

>>> import re
>>> regex = re.compile(r"[^\W\d_]", re.UNICODE)
>>> regex.findall("aä12_")
['a', 'ä']

答案 1 :(得分:-1)

范围内的任何字符:

[A-Za-z]

这是Python中最好的速记..

或者您可以使用[A-Z]ignorecase

进行re.compile(r'[A-Z]', re.I)

或内联:re.compile(r'(?i)[A-Z]')

对于unicode:re.compile(r'[A-Z]', re.I|re.U)re.compile(r'(?iu)[A-Z]')