集合中的正则表达式

时间:2013-02-22 01:46:09

标签: python regex set

我想执行以下操作并打印指示的行:

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关键字未在集合上执行正则表达式搜索。

有办法做到这一点吗?

1 个答案:

答案 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')。