【发布时间】:2016-05-12 16:29:24
【问题描述】:
我有一个正则表达式模式列表。
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) 这样的事情,以便从文本中删除所有匹配项,然后我可以返回 cleansed 文本。
有人知道怎么做吗?我当前的代码仅适用于每个模式的一个匹配项,但文本可能有超过 一个 出现相同的模式,我想消除所有匹配项。
【问题讨论】:
-
你需要那些火柴吗?也许首先
re.sub文本更容易?此外,模式的顺序很重要。您应该事先注意这一点。