擅长:python、mysql、java
<p>如果您想避免反向引用,另一种尝试可能是使用double<code>re.sub</code>。其中第一个<code>re.sub</code>用<code>AND</code>替换所有空格,第二个<code>re.sub</code>用<code>OR</code>替换<code>\s+AND OR AND\s+</code>以进行更正。你知道吗</p>
<p>因此<code>re.sub(r'(\s+)',r' AND ',s)</code>返回<code>'abc AND def AND (ghi) AND OR AND jkl'</code>,<code>re.sub(r'\s+AND OR AND\s+',' OR ',re.sub(r'(\s+)',r' AND ',s))</code>将其更正为<code>abc AND def AND (ghi) OR jkl</code>。你知道吗</p>
<p><strong>工作示例如下-</strong></p>
<pre><code>>>>s='abc def (ghi) OR jkl'
>>>re.sub(r'\s+AND OR AND\s+',' OR ',re.sub(r'(\s+)',r' AND ',s))
>>>'abc AND def AND (ghi) OR jkl'
</code></pre>