我正在尝试使用 RegEx 解析 Wikipedia 文件转储。
我想匹配并删除一组括号之间的所有内容,包括括号本身。我还希望能够检查左括号后的第一个单词是否是某个单词,如果是,请勿删除它。就我而言,单个括号由两个字符组成,例如 {{
和 }}
。
例如,考虑以下顺序:
{{{{}}{{}}{{}}}}不要删除我{{notmeeither}}
使用以下正则表达式:
{{(?!(notmeeither))(.|\n)*?\}}
导致匹配第一个{{{{}}
,从而产生左括号。使匹配变得贪婪并没有帮助,因为它会影响之间的文本以及不应该匹配的文本。我该怎么办?
最佳答案
与 regex您可以指定包 recursive patterns :
>>> import regex
>>> regex.sub(r"{{(?!(notmeeither))((?>[^{}]+|(?R))*)}}","","{{{{}}{{}}{{}}}} Don't delete me {{notmeeither}}")
" Don't delete me {{notmeeither}}"
关于python - 在 Python 中使用正则表达式正确匹配嵌套括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77573389/