是否有更简化的正则表达式来匹配任何不是字母,超广,空格或撇号的东西?
这是我正在使用的正则表达式...
[^\w\s'-]|\d|_|\xa0
它的工作,我只是好奇,如果有一个更简化的表达
答案 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-z
或A-Z
或 0-9
或 {{ 1}}"与_
... [^\w
...然后说" ]
或0-9
"与_
有点令人困惑,并且不必要地复杂化。
与|\d|_
相同,因为它匹配的不仅仅是一个空格(特别是一个回车符,换行符,制表符或换页符),它不会与想要匹配的东西相匹配"任何不匹配的东西... 空格 ...":根据您的描述,在\s
字符类上使用文字。