我想执行以下操作并打印指示的行:
a=set(['bye', 'hits', 'hi'])
if r'.i*' in a:
print "This is what I want to see."
else:
print "Sadly, this is what I actually see."
不幸的是,in
关键字没有在集合上执行正则表达式搜索。
有没有办法做到这一点?
可悲的是,你需要一个循环:
import re
a = {'bye', 'hits', 'hi'}
if any(re.match(r'.i*',s) for s in a):
print "see this"
我用过re.match
,但不清楚你是想要那个还是re.search
.
注意:
所有r'my string'
表示的是原始字符串,而不是正则表达式。使用原始字符串可确保正常的转义序列(以 开头的\
)不会被转义。这在正则表达式中很有用,因为该re
模块还使用了转义序列。通过使用原始字符串,可以避免对字符串进行双重转义(例如'a\\double escaped string'
)。