擅长:python、mysql、java
<p>当您使用<code>"\g<0>"[1:-1]</code>作为替换模式时,您只对<code>"\g<0>"</code><em>字符串</em>进行切片,而不是此backreference引用的实际值。在</p>
<p>如果需要使用“裁剪”方法,则需要将match data对象传递给<code>re.sub</code>:</p>
<pre><code>re.sub("{[^{}]+}", lambda m: m.group()[1:-1], "foo{}bar{baz}")
# => foo{}barbaz
</code></pre>
<p>见<a href="https://ideone.com/0mGwiL" rel="nofollow noreferrer">this Python demo</a>。注意,<code>m.group()</code>代表模式中的<code>\g<0></code>,即整个匹配值。在</p>
<p>然而,使用<a href="http://www.regular-expressions.info/brackets.html" rel="nofollow noreferrer"><strong>capturing groups</strong></a>是一种更“有机”的解决方案,参见<a href="https://stackoverflow.com/a/38734403/3832970">alexce's solution</a>。在</p>