【问题标题】:How to find all occurrences of a pattern and their indices in Python如何在 Python 中查找所有出现的模式及其索引
【发布时间】:2013-03-14 01:03:30
【问题描述】:

有没有一种pythonian 或速记方法可以从字符串及其索引中获取所有出现的模式?我可以写一个方法来做到这一点,我只是想知道是否有一个超短的单线或什么的:)

【问题讨论】:

    标签: python regex string shortcut


    【解决方案1】:

    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,投反对票或不投反对票...

    【讨论】:

    • 你如何得到实际的模式?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 1970-01-01
    相关资源
    最近更新 更多