Python-查找相同字符的序列
发布于 2021-01-29 14:10:16
我正在尝试使用正则表达式来匹配字符串中相同字符的一个或多个实例的序列。
范例:
string = "55544355"
# The regex should retrieve sequences "555", "44", "3", "55"
我能给我一些提示吗?
关注者
0
被浏览
146
1 个回答
-
您可以使用
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']