文字列とそのインデックスからすべてのパターンオカレンスを取得するためのpythonianまたは簡単な方法はありますか?私はそれを行うメソッドを書くことができます、私は超短いワンライナーか何かがあるかどうか疑問に思っています:)
質問する
3320 次
1 に答える
16
救助するPythonre
モジュール。
>>> import re
>>> [x.start() for x in re.finditer('foo', 'foo foo foo foo')]
[0, 4, 8, 12]
re.finditer
ジェネレータを返します。これは、リスト内包表記を使用する代わりに、for-loop
メモリ効率の高いで使用できることを意味します。
これを拡張して、指定されたテキストのパターンのスパンを取得できます。つまり、開始インデックスと終了インデックスです。
>>> [x.span() for x in re.finditer('foo', 'foo foo foo foo')]
[(0, 3), (4, 7), (8, 11), (12, 15)]
Pythonは素晴らしいではありません:)XKCDの引用、反対票、または反対票なしの引用を止めることはできませんでした...
于 2013-03-24T14:37:50.957 に答える