擅长:python、mysql、java
<p>我可以用Python做到这一点:</p>
<pre><code>>>> import re
>>> re.sub(r"x(?=[^']*'([^']|'[^']*')*$)", "P", "axbx'cxdxe'fxgh'ixj'k")
"axbx'cPdPe'fxgh'iPj'k"
</code></pre>
<p>这样做的是使用非捕获匹配(?)?=…)以检查字符x是否在带引号的字符串中。它查找一些直到下一个引号的非引号字符,然后查找单个字符或带引号的字符组的序列,直到字符串的结尾。在</p>
<p>这取决于你的假设,即报价总是平衡的。这也不是很有效。在</p>