擅长:python、mysql、java
<p>不需要将<code>match</code>的结果赋回<code>x</code>。你的对手应该是<code>x</code>,而不是<code>list</code>。</p>
<p>此外,还需要使用<code>re.search</code>,而不是<code>re.match</code>,因为regex模式<code>'\W*myString\W*'</code>与第一个元素不匹配。这是因为<code>test;</code>与<code>\W*</code>不匹配。实际上,您只需要测试紧跟和前一个字符,而不需要测试完整的字符串。</p>
<p>因此,您可以在字符串周围使用<code>word boundaries</code>:</p>
<pre><code>pattern = r'\b' + re.escape(myString) + r'\b'
indices = [i for i, x in enumerate(myList) if re.search(pattern, x)]
</code></pre>