擅长:python、mysql、java
<p>下面是一种使用<a href="https://docs.python.org/2/library/re.html" rel="nofollow noreferrer">^{<cd1>}</a>的方法,当前面没有相同的子字符串时,使用负的lookback来替换<code>quick</code>:</p>
<pre><code>import re
re.sub(r'(?<!quick\s)quick', 'slow', s)
</code></pre>
<p>使用共享示例:</p>
<pre><code>s1 = 'The quick brown fox jumps over the lazy dog. '
s2 = 'The quick quick brown fox jumps over the quick lazy dog. This a very very very very long line.'
re.sub(r'(?<!quick\s)quick', 'slow', s1)
# 'The slow brown fox jumps over the lazy dog. '
re.sub(r'(?<!quick\s)quick', 'slow', s2)
# 'The slow quick brown fox jumps over the slow lazy dog. This a very very very very long line.'
</code></pre>
<hr/>
<p>正则表达式细分:</p>
<ul>
<li><p><code>(?<!quick\s)quick</code></p>
<ul>
<li><p>负向后看<code>(?<!quick\s)</code></p>
<ul>
<li><p><code>quick</code>按字面意思快速匹配字符(区分大小写)</p></li>
<li><p><code>\s</code>匹配任何空格字符(等于<code>[\r\n\t\f\v ]</code>)</p></li>
</ul></li>
<li><p>quick按字面意思匹配字符quick(区分大小写)</p></li>
</ul></li>
</ul>