有人可以解释这个奇怪的python行为吗?显然字符串'test'不包含'Bid'或'Ask'.为什么这匹配?
import re
pat=r'[Bid|Ask]'
reg=re.compile(pat)
if reg.search('test'): print "matched!"
Run Code Online (Sandbox Code Playgroud)
......匹配!
Thi*_*ter 10
[...]定义一个字符类,匹配里面列出的任何字符.你想要的是什么par = r'(Bid|Ask)'.
但是,您根本不应该使用正则表达式,请执行以下操作:
if whatever in ('Bid', 'Ask'):
# it's one of these two
else:
# it isn't
Run Code Online (Sandbox Code Playgroud)
如果您需要执行子字符串检查(感谢@agf):
if any(word in whatever for word in ('Bid', 'Ask')):
# one of the words is in the sting whatever
Run Code Online (Sandbox Code Playgroud)