Python - 使用findall查找最长的序列

Jak*_*sky 4 python regex findall

found = re.findall("g+", "fggfggggfggfg", re.DOTALL)
Run Code Online (Sandbox Code Playgroud)

我想使用findall为模式找到最长的匹配项.我找到了一些解决方案,但仅限于re.matchre.finditer.请问有人给我一个建议吗?

jam*_*lak 7

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

>>> import re
>>> max(re.findall("g+", "fggfggggfggfg"), key=len)
'gggg'
Run Code Online (Sandbox Code Playgroud)

如果您需要按照长度顺序排列所有这些:

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