是否有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
返回一个generator,这意味着您可以在 a中使用而不是使用列表理解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 回答