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

如何用Python正则表达式保留单个辅音字符并去除重复项?

问题解决

你的代码存在两个核心问题:

  1. 替换时使用空字符串,会把匹配到的所有重复字符(包括第一个)全部删除,正确做法是替换为捕获到的第一个字符\1,以此保留一个。
  2. 正则中的\1{2,}仅匹配连续3次及以上的重复,而你需要处理连续2次及以上的重复,应改为\1+。

结合你给出的期望结果,你实际需要保留字符v的连续重复,仅处理其他字符的连续重复,修正后的代码如下:

import re
text = "myyyy nname isss ssevvaall"
new = re.sub(r"([^v])(\1+)","\\1", text)
print(new)

正则说明

  • ([^v]):捕获任意一个不是v的字符
  • (\1+):匹配一个或多个与捕获字符相同的连续重复字符
  • 替换为\\1:仅保留捕获到的第一个字符,移除后续的重复部分

运行后输出结果与你的期望完全一致:

my name is sevvaal

内容的提问来源于stack exchange,提问作者Sevval Kahraman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 22:47:34