我有一个正则表达式模式列表.
rgx_list = ['pattern_1', 'pattern_2', 'pattern_3']
Run Code Online (Sandbox Code Playgroud)
我正在使用一个函数循环遍历列表,编译正则表达式,并应用a 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)
Run Code Online (Sandbox Code Playgroud)
我想做一些类似的text.delete(matches)事情,所有的匹配将从文本中删除,然后我可以返回清理的文本.
有谁知道如何做到这一点?我当前的代码将只为每个图案的一个匹配的工作,但文本可能有不止一个相同的模式的发生和我想消除所有的比赛.
Mat*_*t S 12
使用sub用空字符串替换匹配的模式.无需先单独找到匹配项.
def clean_text(rgx_list, text):
new_text = text
for rgx_match in rgx_list:
new_text = re.sub(rgx_match, '', new_text)
return new_text
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10997 次 |
| 最近记录: |