gpt4 book ai didi

python - 用于检测双花括号之间文本的正则表达式

转载 作者:太空宇宙 更新时间:2023-11-04 01:21:26 25 4
gpt4 key购买 nike

使用正则表达式,我想检测开始和结束双花括号之间的文本/字符串,它应该检测任何内部花括号以及文本。

例如:

{{detect this {{and this as well}} text}} 但文本并未在此处结束,因此它应该{{not detect this}}。

我写了这个正则表达式

\{\{[\s\S]+\}\}

但这会选择整个字符串,从 {{detect this.... 到 {{not detect this}}

注意:我正在为此使用 python re

最佳答案

Pyparsing 允许你定义递归语法,但有一些内置的帮助程序来处理像这样的常见语法。请参阅下面带注释的代码示例:

from pyparsing import nestedExpr, ungroup, originalTextFor

# use nestedExpr to define a default expression with left-right nesting markers
nestedText = ungroup(nestedExpr('{{','}}'))

sample = """{{detect this {{and this as well}} text}} but text does not ends here so it should {{not detect this}}."""

# note how reporting the results as a list keeps the nesting of {{ }}'s
print nestedText.parseString(sample).asList()
# prints ['detect', 'this', ['and', 'this', 'as', 'well'], 'text']

# if you just want the string itself, wrap with 'originalTextFor'
print originalTextFor(nestedText).parseString(sample)[0]
# prints {{detect this {{and this as well}} text}}

关于python - 用于检测双花括号之间文本的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20936622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com