【问题标题】:Python - finding the longest sequence with findallPython - 用 findall 找到最长的序列
【发布时间】:2013-04-09 21:36:43
【问题描述】:
found = re.findall("g+", "fggfggggfggfg", re.DOTALL)

我想使用 findall 查找模式的最长匹配项。我找到了一些解决方案,但仅适用于 re.matchre.finditer。有人可以给我建议吗?

【问题讨论】:

    标签: python regex findall


    【解决方案1】:

    re.DOTALL 在这种情况下什么都不做,所以为了简单起见,我把它去掉了:

    >>> import re
    >>> max(re.findall("g+", "fggfggggfggfg"), key=len)
    'gggg'
    

    如果您需要按长度顺序排列它们:

    >>> sorted(re.findall("g+", "fggfggggfggfg"), key=len, reverse=True)
    ['gggg', 'gg', 'gg', 'g']
    

    【讨论】:

    • +1,我还要指出 re.DOTALL 标志没有做任何有用的事情。
    • @2rec 我以为是这样的
    猜你喜欢
    • 1970-01-01
    • 2020-04-14
    • 1970-01-01
    • 2023-03-30
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多