擅长:python、mysql、java
<p>可以使用以下正则表达式:</p>
<pre><code>"[^"]*(?:""[^"]*)*"
</code></pre>
<p>见<a href="https://regex101.com/r/nO1wB6/2" rel="nofollow noreferrer">demo</a></p>
<p>此正则表达式将匹配非引号或双引号内的两个后续双引号。在</p>
<p>它是如何工作的?让我分享来自<a href="https://www.debuggex.com/r/VMpVzFMT_JuSSV19" rel="nofollow noreferrer">debuggex.com</a>的图形:</p>
<p><a href="https://i.stack.imgur.com/tfPBg.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/tfPBg.png" alt="enter image description here"/></a></p>
<p>对于regex,我们匹配:</p>
<ul>
<li><code>"</code>-(1)-字面意思的引用</li>
<li><code>[^"]*</code>-(2,3)-0个或多个引号以外的字符(是的,包括换行符,这是一个<a href="http://www.regular-expressions.info/charclass.html#negated" rel="nofollow noreferrer">negated character class</a>),如果没有,则regex将搜索最后的文本引号(6)</li>
<li><code>(?:""[^"]*)*</code>-(4,5)-0或更多序列:
<ul>
<li><code>""</code>-(4)-双双引号</li>
<li><code>[^"]*</code>-(5)-0个或多个字符,而不是引号</li>
</ul></li>
<li><code>"</code>-(6)-最后的字面引号。在</li>
</ul>
<p>这比<a href="https://regex101.com/r/nO1wB6/4" rel="nofollow noreferrer">^{<cd7>}</a>更快(尽管产生相同的结果),因为前者的处理是线性的,涉及更少的回溯。在</p>