python - Python Re:在固定表达式中替换未知数量的表达式
问题描述
我想使用 python re 模块替换未知数量的表达式,这些表达式总是落在两个表达式之间,以便任何以between开头和</w:t>
结尾的表达式都被替换。到目前为止,我有:<w:t>
{{
}}
import re
a = re.compile(r'</w:t>.*?<w:t>')
a.sub('', 'input_string')
我认为该模式可能过于贪婪,但主要问题是我想替换任何与该模式匹配的表达式的零个或多个实例,前提是它介于{{
and之间}}
。请有人指出我正确的方向。
解决方案
您可以匹配 and 之间的所有子字符串,{{
并}}
仅在匹配项中删除所有出现的第二个模式:
input_string = re.sub(r'(?s){{.*?}}', lambda x: re.sub(r'(?s)</w:t>.*?<w:t>', '', x.group()), input_string)
正(?s){{.*?}}
则表达式匹配{{
,任何 0+ 字符尽可能少到最左边}}
,包括它们,然后在</w:t>
和之间的所有子字符串仅在替换<w:t>
匹配的内部被删除。lambda x: re.sub(r'(?s)</w:t>.*?<w:t>', '', x.group())
推荐阅读
- c# - C#:Dbreader 值未在循环中更新
- javascript - 如何让某些角色运行 discord.js 命令?
- r - 重新编码后如何使列名像“X_re”?
- javascript - 在 React Native 应用程序中使用我的 SVG 上的 Stroke CSS 属性
- spring-boot - 如何在模块的 Spring Boot 配置类中使用 @AutoConfigureOrder
- c# - 如何使用 MIP SDK 应用水印(Microsoft 信息保护)
- jenkins - Jenkins服务器启动问题
- angular - Firestore 组查询不起作用权限被拒绝
- javascript - Gatsby 模式弃用警告:推断的解析器
- python - 我怎样才能弄清楚为什么我的 Jupyter 内核会死掉?