我有一组正则表达式模式。
rgx_list = ['pattern_1', 'pattern_2', 'pattern_3']
我正在使用一个函数来循环遍历列表、编译正则表达式,并应用findall
来获取匹配的术语,然后我希望有一种方法可以从文本中删除这些术语。
def clean_text(rgx_list, text):
matches = []
for r in rgx_list:
rgx = re.compile(r)
found_matches = re.findall(rgx, text)
matches.append(found_matches)
我希望做类似于text.delete(matches)
的操作,这样所有匹配项都将从文本中删除,然后我可以返回清理过的文本。
有人知道怎么做吗? 我目前的代码只适用于每个模式的一个匹配项,但文本可能具有多个相同模式的出现,我想消除所有匹配项。
re.sub
处理文本会更容易一些?此外,模式的顺序很重要,你应该提前考虑好。 - Wiktor Stribiżew