我想执行以下操作并打印指示的行:
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
关键字未在集合上执行正则表达式搜索。
有办法做到这一点吗?
答案 0 :(得分:3)
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'
)。