Python实现将元音替换为「元音+r+元音」的字符串处理需求
实现元音重复替换的Python程序
需求明确:将字符串中的每个元音(a/e/i/o/u)替换为「原元音+r+原元音」的形式,比如输入burger,输出bururgerer。
你提供的基础代码仅处理了a、e、i三个元音,且通过逐个写replace的方式不够灵活。下面提供两种更通用的实现方案:
方法1:遍历字符逐个处理
逻辑直观,适合理解基础流程:
text = input("Please add text: ") vowels = {'a', 'e', 'i', 'o', 'u'} result = [] for char in text: if char in vowels: result.append(f"{char}r{char}") else: result.append(char) print(''.join(result))
- 定义包含所有目标元音的集合
vowels - 遍历输入字符串的每个字符,判断是否为元音:
- 是元音则按规则拼接成
原元音+r+原元音后加入结果列表 - 非元音直接加入结果列表
- 是元音则按规则拼接成
- 最后用
join将列表转换为字符串输出
方法2:使用正则表达式(更简洁)
利用re.sub批量匹配并替换,代码更紧凑:
import re text = input("Please add text: ") # 匹配所有小写元音并按规则替换 result = re.sub(r'([aeiou])', r'\1r\1', text) print(result)
r'([aeiou])':匹配单个小写元音,用括号将其捕获为分组r'\1r\1':替换为「捕获的元音 + r + 捕获的元音」,\1代表第一个分组的内容- 如果需要处理大写元音(如A/E/I/O/U),可将正则改为
r'([aeiouAEIOU])',替换规则保持不变
测试示例:输入burger,两种方法都会输出bururgerer,符合需求。
内容的提问来源于stack exchange,提问作者krbjds
相关产品推荐
相关产品推荐

