擅长:python、mysql、java
<p>我可以使用这个方法删除字符串中的所有方括号,而不会消除或不匹配外部的“({”和“})”</p>
<pre><code>while True:
newstring = re.sub(r'(\(\{.*)\{([^{}]*)\}(.*\}\))', r'\1\2\3', mystring)
if newstring == mystring:
break
mystring = newstring
</code></pre>
<p>这里有三组人(我知道,很难说)。第一个是<code>(\(\{.*)</code>。它会找到你的<code>({</code>,然后再找到它后面的任何东西,直到找到最里面的<code>{</code></p>
<p>我们知道它是最里面的,因为第二组是<code>([^{}]*)</code>。这将匹配不是<code>{</code>或<code>}</code>的任何内容。在</p>
<p>{{cd7>找到最里面的东西。在</p>
<p>整个匹配被这三个组重新组合在一起(去掉了<code>{}</code>)来代替。它重复这个过程,直到找不到更多匹配的大括号来替换。在</p>
<p>如果还想替换<code>()</code>,可以将其修改为</p>
^{pr2}$