found = re.findall("g+", "fggfggggfggfg", re.DOTALL)
我想使用findall为模式找到最长的匹配项。我找到了一些解决方案,但仅适用于re.match
或re.finditer
。请问有人给我一个建议吗?
答案 0 :(得分:7)
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']