文字列のすべてのインデックス位置を単語リストに配置しようとしていますが、値をリストとして返すようにします。私は文字列がそれ自身であるか、句読点の前後にあるが、それが大きな単語の部分文字列でない場合は、文字列を探したいと思う。正規表現をPythonのリストの理解にどのように使用しますか?
次のコードでは、「牛」のみがキャプチャされ、「テスト;牛」と「牛」の両方が表示されません。
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
しかし、これはエラーを与える:予想文字列または誰かが私が間違ってやっていることを知っている場合は
をバッファリングし、私は正規表現を使用するためにコードを変更しようとしている
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
聞くのがとてもうれしいです。私はそれが文字列を期待しているときにそこで正規表現を使用しようとしているという事実と関係があると感じています。解決策はありますか?
私が探している出力は読んでください:あなたが戻ってx
からmatch
の結果を割り当てる必要はありません
>> [0, 4, 5]
おかげ
はたぶんあまりに 're.escape'追加:コメントで指摘したように
、より良い選択肢かもしれません、次の? –
@MartijnPieters:確かに、追加されました。 – georg
これは、一致したい最初の要素と一致しません。 –