1

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

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

有没有办法做到这一点?

4

1 回答 1

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

于 2013-02-22T01:49:13.400 回答