我有一个大文件。 我有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中执行此操作的更好方法是什么?
答案 0 :(得分:-1)
使用一个正则表达式来统治它们:
new_regex = '(' + ')|('.join(my_list_of_regexes) + ')'
你可能想要使用字符串格式而不是+
,但你明白了。