我的意思是:
line = "aaaaaaaaaaaaaaxxxxxxxxxxxxxxbbbbbbbbbbbbxxxxxxxxxxxxxxxxxxxbbbbbbbbbbb"
如何找到" xxxxx"的补丁数量?在line
?例如,上面的答案是2
。
请注意,'x's
的数量可能会有所不同。
答案 0 :(得分:3)
这是正则表达式非常有用的一个很好的例子。我不是世界上最好的正则表达式,但这是一个有效的片段:
import re
line = "aaaaaaaaaaaaaaxxxxxxxxxxxxxxbbbbbbbbbbbbxxxxxxxxxxxxxxxxxxxbbbbbbbbbbb"
patches = len(re.findall(r"(x+)", line))
无论多长时间匹配任何一个或多个'x'的组,这都可以。
答案 1 :(得分:1)
您可以使用groupby
对每个"补丁"进行分组然后计算出现次数:
from itertools import groupby
line = 'aaaaaaaaaaaaaaxxxxxxxxxxxxxxbbbbbbbbbbbbxxxxxxxxxxxxxxxxxxxbbbbbbbbbbb'
number_of_x = sum(ch == 'x' for ch, _ in groupby(line))