您可以使用re.findall()
和((.)\2*)
正则表达式:
>>> [item[0] for item in re.findall(r"((.)\2*)", string)]
['555', '44', '3', '55']
关键部分在外部捕获组-中(.)\2*
。在这里,我们捕获一个字符,(.)
然后通过组号引用该字符:\2
。组号为2,因为我们有一个外部捕获组,其号为1,*
表示0次或多次。
您也可以通过一个捕获组和解决它re.finditer()
:
>>> [item.group(0) for item in re.finditer(r"(.)\1*", string)]
['555', '44', '3', '55']