我正在尝试在单词列表中定位字符串的所有索引位置,并且我希望将值作为列表返回。如果它是单独的,或者它是否在标点符号之前或之后,我想找到该字符串,但如果它是一个较大单词的子字符串,则不是。
以下代码仅捕获“cow”,并错过了“test;cow”和“cow”。
myList = ['test;cow', 'one', 'two', 'three', 'cow.', 'cow', 'acow']
myString = 'cow'
indices = [i for i, x in enumerate(myList) if x == myString]
print indices
>> 5
我尝试更改代码以使用正则表达式:
import re
myList = ['test;cow', 'one', 'two', 'three', 'cow.', 'cow', 'acow']
myString = 'cow'
indices = [i for i, x in enumerate(myList) if x == re.match('\W*myString\W*', myList)]
print indices
但这给出了一个错误:预期的字符串或缓冲区
如果有人知道我做错了什么,我会很高兴听到。我有一种感觉,这与我在期望字符串时尝试在其中使用正则表达式的事实有关。有解决办法吗?
我正在寻找的输出应该是:
>> [0, 4, 5]
谢谢