我觉得有点傻,但它不起作用:
import re
a = " ebrj wjrbw erjwek wekjb rjERJK ABB RAEJKE BWE RWEJBEWJ B KREWBJ BWERBJ32J3B23B J BJ235JK BJJ523 2"
print re.match(ur'/(wekjb|ABB)/',a)
if re.match(ur'/(wekjb|ABB)/',a):
print 'success'
如果用户给定的 a
是 unicode,我有 ur'
。如果 wekjb
或 ABB
在字符串中,我想打印成功,但我总是得到 None
作为 match的结果
.
最佳答案
re.match
隐式锚定到字符串的开头。如果要在字符串中搜索可以位于其中任何位置的子字符串,则需要使用 re.search
:
import re
a = " ebrj wjrbw erjwek wekjb rjERJK ABB RAEJKE BWE RWEJBEWJ B KREWBJ BWERBJ32J3B23B J BJ235JK BJJ523 2"
print re.search(ur'(wekjb|ABB)',a).group()
if re.search(ur'(wekjb|ABB)',a):
print 'success'
输出:
wekjb
success
此外,Python 正则表达式不需要 /
在开始和结束。
最后,我添加了 .group()
到 print
的结尾行,因为我认为这就是你想要的。否则,你会得到类似 <_sre.SRE_Match object at 0x01812220>
的东西,这不是很有用。
关于python - Re.match() 总是返回 none,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19871253/