python 如何使用regex打印重复输出它只打印第一个匹配项

hmae6n7t  于 2023-05-21  发布在  Python
关注(0)|答案(1)|浏览(120)

我有一个任务,我需要打印发生和计数和未发生和计数

import re

sequence = '1222311'

m = re.search(r'(\d)\1+',sequence)

print(m)

预期输出:

(1, 1) (3, 2) (1, 3) (2, 1)

按顺序需要检查和打印

(cnt , val) -> 1222311 -> 1 as come only once -> (1,1) (cnt,number)
zbdgwd5y

zbdgwd5y1#

你可以使用re.finditer来获取匹配的开始/结束索引,然后构造你的输出(regex101):

import re

sequence = '1222311'

out = [(m.end() - m.start(), int(m.group(1))) for m in re.finditer(r'(\d)\1*', sequence)]
print(out)

图纸:

[(1, 1), (3, 2), (1, 3), (2, 1)]

相关问题