【发布时间】:2013-03-14 01:03:30
【问题描述】:
有没有一种pythonian 或速记方法可以从字符串及其索引中获取所有出现的模式?我可以写一个方法来做到这一点,我只是想知道是否有一个超短的单线或什么的:)
【问题讨论】:
标签: python regex string shortcut
有没有一种pythonian 或速记方法可以从字符串及其索引中获取所有出现的模式?我可以写一个方法来做到这一点,我只是想知道是否有一个超短的单线或什么的:)
【问题讨论】:
标签: python regex string shortcut
python re 模块来救援。
>>> import re
>>> [x.start() for x in re.finditer('foo', 'foo foo foo foo')]
[0, 4, 8, 12]
re.finditer 返回一个generator,这意味着您可以在for-loop 中使用in 而不是使用list-comprehensions,这样会更节省内存。
您可以扩展它以获得给定文本中模式的跨度。即开始和结束索引。
>>> [x.span() for x in re.finditer('foo', 'foo foo foo foo')]
[(0, 3), (4, 7), (8, 11), (12, 15)]
Python 是不是很棒 :) 无法阻止自己引用 XKCD,投反对票或不投反对票...
【讨论】: