単語のリスト内の文字列のすべてのインデックス位置を見つけようとしていますが、値をリストとして返す必要があります。文字列が単独である場合、または句読点が前後にある場合は文字列を検索したいと思いますが、それがより大きな単語の部分文字列である場合は検索しません。
次のコードは、"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]
ありがとう