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

如何用下划线替换连续3个元音字符?Python代码问题求助

解决连续3个元音替换为下划线的问题

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

  • 循环里用strng.count(i)统计的是整个字符串中该元音的总出现次数,而非连续出现次数,只要总次数≥3就替换所有该元音,完全没考虑“连续”的要求
  • 尝试用replace(i, '_', 3)是替换字符串中前3个出现的该元音,不是连续的3个,不符合需求

正确解决方案:用正则匹配连续重复的元音

正则表达式天生擅长处理连续字符的匹配,我们可以精准匹配连续3个相同的元音,然后替换为单个下划线:

import re

def replaceV(strng):
    # 匹配连续3个相同的元音字符,替换为下划线
    return re.sub(r'([aeiou])\1{2}', '_', strng)

# 测试示例
print(replaceV('happpyyyy Biiiirthdayyyyaaaa'))  # 输出: happpyyyy B_irthdayyyy_a
print(replaceV('happpyyyy Biiiirthdayyyyaaaaa')) # 输出: happpyyyy B_irthdayyyy_aa

正则逻辑说明

  • ([aeiou]):捕获一个元音字符,存入分组1
  • \1{2}:匹配分组1中的字符连续出现2次,加上前面的1次,总共匹配连续3个相同的元音
  • 每次匹配到连续3个相同元音时,就替换为一个下划线,完全贴合你的需求:
    • 连续4个i → 替换前3个为_,剩下1个i,得到B_irthday
    • 连续4个a → 替换前3个为_,剩下1个a,得到_a

内容的提问来源于stack exchange,提问作者Abhijit Dey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 05:22:07