擅长:python、mysql、java
<p>您需要在模式前面加上一个否定的lookbehind断言:</p>
<pre><code>(?<!http://)egg[0-9]
</code></pre>
<p>在这个正则表达式中,每当正则表达式引擎找到匹配的模式<code>egg[0-9]</code>时,它都会回过头来验证前面的模式是否不匹配。负lookbehind断言以<code>(?<!</code>开头,以<code>)</code>结尾。这些分隔符之间的所有内容不应位于以下模式之前,也不会包含在结果中。</p>
<p>如何在您的案例中使用它:</p>
<pre><code>>>> regex = re.compile('(?<!http://)egg[0-9]')
>>> a = "Example: http://egg1.com egg2 http://egg3.com egg4foo"
>>> regex.findall(a)
['egg2', 'egg4']
</code></pre>