Python-查找相同字符的序列

发布于 2021-01-29 14:10:16

我正在尝试使用正则表达式来匹配字符串中相同字符的一个或多个实例的序列。

范例:

string = "55544355"
# The regex should retrieve sequences "555", "44", "3", "55"

我能给我一些提示吗?

关注者
0
被浏览
146
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以使用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']
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看