如何用单行Python正则表达式处理字符串并添加指定标点?
解决方案
可以通过单行正则替换一次性完成所有格式调整,核心思路是用正则分组匹配不同需要修改的位置,再通过lambda表达式根据匹配结果返回对应的替换内容:
import re text = 'EffectsRelaxed96% VotedHappy79% VotedEuphoric67% Voted' formatted_text = re.sub( r'(Effects)|(Voted)(?=\s?[A-Z])|([a-zA-Z])(\d)|(\w)([A-Z])', lambda m: ( f"{m.group(1)}: " if m.group(1) else f"{m.group(2)}, " if m.group(2) else f"{m.group(3)} {m.group(4)}" if m.group(3) else f"{m.group(5)} {m.group(6)}" ), text ) print(formatted_text) # 输出: Effects: Relaxed 96% Voted, Happy 79% Voted, Euphoric 67% Voted
正则规则说明
(Effects):精准匹配开头的"Effects",替换时追加:(Voted)(?=\s?[A-Z]):匹配后面跟着可选空格+大写字母的"Voted"(即非末尾的Voted),替换时追加,([a-zA-Z])(\d):匹配字母与数字的衔接处(比如Relaxed96),在中间插入空格(\w)([A-Z]):匹配小写字母/数字与大写字母的衔接处(比如EffectsRelaxed、VotedHappy),在中间插入空格
内容的提问来源于stack exchange,提问作者boyenec
相关产品推荐
相关产品推荐

