擅长:python、mysql、java
<p>为<a href="https://stackoverflow.com/a/17975579/586621">@Rohit Jain's answer</a>提供一个替代的、非正则表达式的解决方案</p>
<p>没有正则表达式的单行(在<a href="/questions/tagged/repl" class="post-tag" title="show questions tagged 'repl'" rel="tag">repl</a>中使用):</p>
<pre class="lang-py prettyprint-override"><code>>>> (lambda s: 'cat' in s and 'dog' not in s)("CatBlablablaDog".lower())
False
>>> (lambda s: 'cat' in s and 'dog' not in s)("blablaCatBlabla".lower())
True
>>> (lambda s: 'cat' in s and 'dog' not in s)("Dog_blabla_Cat".lower())
False
</code></pre>
<p>使用某种更正式的函数:</p>
<pre class="lang-py prettyprint-override"><code>def findExclude(string, search_str, exclude_str):
string = string.lower()
return search_str in string and exclude_str not in string
print findExclude("CatBlablablaDog", 'cat', 'dog')
print findExclude("blablaCatBlabla", 'cat', 'dog')
print findExclude("Dog_blabla_Cat", 'cat', 'dog')
</code></pre>