Python中如何为特定字符串/字符添加空格并完善自定义函数?
解决日语字符串的空格添加问题
嘿,我来帮你搞定这个字符串处理需求~首先得说下你原来写的函数存在几个问题:
- 条件判断里用了赋值符号
=,应该用比较符号==才对; - 函数里的
x、y、z没有定义,不知道是从哪来的; - 整个逻辑只是判断单个子串返回,没有针对输入的完整文本做替换处理,根本没法处理你给的长字符串。
针对你的需求,我们可以用正则表达式来精准匹配需要添加空格的位置,这样代码简洁又高效。你的需求可以拆解成两个明确的替换规则:
- 所有「を」字符后面添加一个空格;
- 「テレビ」后面直接跟「つけて」时,中间添加一个空格。
下面是修正后的完整函数:
import re def teform(txt): # 先处理「を」后面加空格的规则 step1 = re.sub(r'を', r'を ', txt) # 再处理「テレビ」后跟「つけて」的规则,匹配连续的子串进行替换 result = re.sub(r'テレビつけて', r'テレビ つけて', step1) return result # 测试验证 input_txt = "テレビを付けてテレビつけてつけてテレビをオンにして" print(teform(input_txt)) # 输出:テレビを 付けて テレビ つけて つけて テレビを オンにして
代码解释:
- 第一步用
re.sub把所有的「を」替换成「を 」,快速完成第一个规则的要求; - 第二步再用
re.sub匹配「テレビつけて」这个连续子串,替换成带空格的版本,满足第二个规则; - 两步处理后就能精准得到你想要的结果,后续如果有新的规则,直接添加对应的
re.sub语句即可,非常灵活。
内容的提问来源于stack exchange,提问作者user_seaweed
相关产品推荐
相关产品推荐

