擅长:python、mysql、java
<p>您可以使用“负面观察”:</p>
<pre><code>(?<!C\(=O\))N
</code></pre>
<p>参见<a href="https://regex101.com/r/nI7wO4/3" rel="nofollow">regex demo</a></p>
<p><code>N</code>只有在前面没有紧跟文字<code>C(=O)</code>序列时才会匹配</p>
<p><code>(?<!...)</code>被称为<em>负前瞻</em>。它不使用字符(不移动regex索引),只检查当前位置之前的字符串<em>中是否缺少某些内容。如果文本匹配,则匹配失败(没有匹配)。详见<a href="http://www.regular-expressions.info/lookaround.html" rel="nofollow"><strong>Lookarounds</strong></a></p>
<p><a href="https://ideone.com/UtXpRb" rel="nofollow">In Python</a>:<code>r'(?<!C\(=O\))N'</code>:</p>
<pre><code>import re
p = re.compile(r'(?<!C\(=O\))N')
strs = ["C(=O)N", "C(=O)CN", "C(=O)NCCCN"]
print([x for x in strs if p.search(x)])
</code></pre>