在文件的一次迭代中匹配多个正则表达式

时间:2017-06-30 17:50:15

标签: python regex python-2.7

我有一个大文件。 我有n个正则表达式。

我希望将所有n个正则表达式与文件匹配,但只将文件覆盖一次。所以这是我的伪代码:

这里我为每一行运行所有正则表达式的循环。

f = open("file.txt")
for line in f:
   for regex in regexes:
      m = re.search(regex, line)
      if m is not None:
          # do something

另一个伪代码,我写了n if-elif个语句

f = open("file.txt")
for line in f:
     if re.search(regex1, line)
        # do something1
     elif re.search(regex2, line)
        # do something2
     elif re.search(regex3, line)
        # do something3 
     ...
     else:
        pass

我不喜欢任何一种方法。在python中执行此操作的更好方法是什么?

1 个答案:

答案 0 :(得分:-1)

使用一个正则表达式来统治它们:

new_regex = '(' + ')|('.join(my_list_of_regexes) + ')'

你可能想要使用字符串格式而不是+,但你明白了。