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

Python字符串插入^字符:将“SUPER MAN”转为“S^U^P^E^R M^A^N”

解决字符串插入分隔符的问题

哈哈,这个坑我踩过!你用print("SUPER MAN".replace("", "^"))得到^S^U^P^E^R^ ^M^A^N^,是因为空字符串会匹配每一个字符的前后位置——包括字符串的开头、结尾,还有空格的前后,所以所有缝隙都被填上了^,这显然不是你想要的效果。

想要得到S^U^P^E^R M^A^N,也就是只在每个单词的字母之间插入^,同时保留单词间的空格,这里有两种简单的解决方法:

方法1:拆分单词+字符拼接(直观易懂)

把原字符串按空格拆成独立单词,对每个单词的字符用^连接,最后再用空格把处理后的单词拼回去:

original = "SUPER MAN"
processed = " ".join(["^".join(word) for word in original.split()])
print(processed)  # 输出: S^U^P^E^R M^A^N

这个方法的好处是逻辑清晰,不管单词里是大写还是小写字母都能适用,扩展性很强。

方法2:正则表达式(简洁高效)

用正则的正向肯定预查,只匹配两个字母之间的位置,然后替换成^:

import re
original = "SUPER MAN"
processed = re.sub(r'(?<=[A-Z])(?=[A-Z])', '^', original)
print(processed)  # 输出: S^U^P^E^R M^A^N

这里的正则(?<=[A-Z])(?=[A-Z])表示:匹配一个位置,它的前一个字符是大写字母,后一个字符也是大写字母——这样就只会在单词内部的字母之间插入分隔符,不会碰空格的位置。如果你的字符串里有小写字母,可以把正则改成(?<=[a-zA-Z])(?=[a-zA-Z])。

内容的提问来源于stack exchange,提问作者denzel archie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:09:43