RegEx获取除字母,空格,'以外的所有内容,以及 -

时间:2015-02-14 20:12:53

标签: python regex

是否有更简化的正则表达式来匹配任何不是字母,超广,空格或撇号的东西?

这是我正在使用的正则表达式...

[^\w\s'-]|\d|_|\xa0

它的工作,我只是好奇,如果有一个更简化的表达

3 个答案:

答案 0 :(得分:1)

[^a-zA-Z-' ]

匹配除字母A-z,连字符,空格和撇号之外的所有内容

答案 1 :(得分:1)

\w已包含\d_。所以最简单的正则表达式将是:

[^\w\s\-']

答案 2 :(得分:0)

以下模式......

[^a-z- ']

...更简单,应该根据不区分大小写设置做你想要的事情:

import re
p = re.compile(ur'[^a-z- \']', re.IGNORECASE)
test_str1 = u"9"
test_str2 = u"["
test_str3 = u"_"

re.search(p, test_str1)
re.search(p, test_str2)
re.search(p, test_str3)

镜像Maroun Maroun的评论,\w匹配_;它也匹配0-9:所以说"不是a-zA-Z 0-9 {{ 1}}"与_ ... [^\w ...然后说" ]0-9"与_有点令人困惑,并且不必要地复杂化。

|\d|_相同,因为它匹配的不仅仅是一个空格(特别是一个回车符,换行符,制表符或换页符),它不会与想要匹配的东西相匹配"任何不匹配的东西... 空格 ...":根据您的描述,在\s字符类上使用文字