2013-03-24 52 views

回答

14

python re module to rescue。

>>> import re 
>>> [x.start() for x in re.finditer('foo', 'foo foo foo foo')] 
[0, 4, 8, 12] 

re.finditer返回generator,這是什麼意思的是,而不是使用list-comprehensions,你可以在使用的for-loop這將是更多的內存效率。

您可以擴展它以獲得給定文本中的模式範圍。即開始和結束索引。

>>> [x.span() for x in re.finditer('foo', 'foo foo foo foo')] 
[(0, 3), (4, 7), (8, 11), (12, 15)] 

是不是Python的真棒:)無法從報價XKCD,downvotes或沒有downvotes管不住自己......

enter image description here

+0

謝謝,這是真棒:) – 2013-03-24 15:07:58

+0

你將如何獲得實際模式? – goldisfine 2013-11-25 01:52:11

相關問題