<p>您可以使用<a href="http://treyhunner.com/2015/12/python-list-comprehensions-now-in-color/" rel="nofollow">list comprehension</a>执行类似的操作。在</p>
<pre><code>row = '******AUDIT COMMITTEE REPORT******'
match = ["AUDIT COMMITTEE REPORT", "REPORT OF THE AUDIT COMMITTEE"]
is_match = sum([m in row.upper() for m in match])
if is_match:
print("Found it!")
if "REPORT" in row.upper():
print ("******"+row.upper()+"******")
</code></pre>
<p>首先,我们创建所有可能匹配项的列表,这些匹配项可以从文件中加载,也可以在python代码中静态声明。在</p>
^{pr2}$
<p>接下来,我们遍历所有可能的匹配项,看看是否有匹配字符串<code>row</code>。如果有匹配项,则会向列表中添加一个真正的布尔值,我们可以使用它来确定是否存在匹配项。在</p>
<pre><code>is_match = sum([m in row.upper() for m in match])
</code></pre>
<p>如果删除<code>sum()</code>,您可以看到list comprehension的输出只是布尔值的列表。在</p>
<pre><code>print([m in row.upper() for m in match])
[True, False]
</code></pre>
<p>如果你想更高效、更简单,你可以用for循环实现一个函数。在</p>
<pre><code>matches = ["AUDIT COMMITTEE REPORT", "REPORT OF THE AUDIT COMMITTEE"]
def is_match(row):
for match in matches:
if match in row.upper():
return True
return False
</code></pre>
<p>这个循环将循环所有可能的匹配项,如果找到匹配项,它将立即返回True,否则将退出并返回False。在</p>