You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python正则表达式:移除连续出现超过N次的重复字母

正则实现连续重复字符保留指定次数的替换

要将字符串中连续重复的字符最多保留N次(比如N=2时把"Sayy Hellooooooo"转为"Sayy Helloo"),可以通过正则替换实现:

核心思路

匹配连续出现N次及以上的相同字符,将其替换为该字符重复N次的结果。

正则表达式与替换逻辑

当N=2时,正则表达式为:(.)\1{2,}
替换字符串为:\1\1

  • (.):捕获任意单个字符(若需匹配换行,替换为([\s\S]))
  • \1{2,}:表示捕获的字符连续出现2次及以上(加上前面的捕获组,整体是连续3次及以上的重复字符)
  • 替换时用捕获到的字符重复2次,截断过长的连续序列

示例代码

Python

import re

original = "Sayy Hellooooooo"
n = 2
pattern = r'(.)\1{' + str(n) + ',}'
result = re.sub(pattern, r'\1' * n, original)
print(result)  # 输出: Sayy Helloo

JavaScript

const original = "Sayy Hellooooooo";
const n = 2;
const regex = new RegExp(`(.)\\1{${n},}`, 'g');
const result = original.replace(regex, '$1'.repeat(n));
console.log(result); // 输出: Sayy Helloo

如果需要处理所有连续重复(包括刚好N次的,虽然结果不变),可以把正则改成(.)\1+,替换逻辑一致,只是匹配范围更广,但最终结果相同。

内容的提问来源于stack exchange,提问作者Anas Saradar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 14:40:37