小编典典

什么是可以将重复的相同字符减少到最多两个重复的正则表达式?

all

我觉得我很难很好地解释这一点,以使搜索引擎能够找到我正在寻找的东西。行为本质上是这样的:

string = “aaaaaaaaare yooooooooou okkkkkkk”

将变为“aare youou okk”,任何给定字符的最大重复次数为两次。

匹配多余的重复项,然后 re.sub 对我来说似乎是采取的方法,但我无法弄清楚我需要的正则表达式语句。

我觉得唯一值得发布的尝试是 - (\w)\1{3,0}

仅匹配重复三遍以上的字符的第一个实例 - 所以只有一个匹配,以及整个重复字符块,而不仅仅是超过最大值 2 的字符。

任何帮助表示赞赏!


阅读 119

收藏
2022-07-28

共1个答案

小编典典

正则表达式应该(\w)\1{2,}匹配一个字符,然后至少重复 2 次。当您包含初始字符时,这是 3 或更多。

然后替换是\1\1仅用两次重复替换。

string = "aaaaaaaaare yooooooooou okkkkkk"
new_string = re.sub(r'(\w)\1{2,}', r'\1\1', string)
2022-07-28