擅长:python、mysql、java
<p>我不确定您的<code>self._searchTerm</code>是否由短语或单词组成,但一般来说,使用<code>set</code>s和<code>dict</code>s而不是regex会得到更好的结果。在这种情况下,您不需要regex机制,因为您只需要计数/匹配完整的单词。例如,要搜索句子中的某个单词,可以用以下方法轻松替换:</p>
<pre><code>search_sentence = set(sent_tokenize.tokenize(...))
if self._search_term in search_sentence:
# yay
</code></pre>
<p>(我使您的代码PEP8兼容。)</p>
<p>如果您担心大写,请将所有内容转换为小写:</p>
^{pr2}$
<p>您还可以使用<code>collection.Counter</code>或<code>collection.defaultdict(int)</code>来计算单词的出现次数。在</p>
<p>如果您必须使用正则表达式,因为您希望匹配遵循特定模式的单词,而不是匹配整个单词,那么我建议您编译该模式一次,然后将该模式传递给其他方法,例如</p>
<pre><code>self.search_pattern = re.compile(r"\b{term}\b".format(term=self._search_term), re.I)
found_term = self.search_pattern.find_all(hold_list[i][5])
</code></pre>