Python中re.sub()进阶用法:单步实现特定文本替换需求
单个re.sub()实现文本替换方案
可以通过构造精准的正则表达式,用一次re.sub()调用完成所有需求:
import re input_text = 'screen.add(SUBTITLES("Remove the Pirates from the Ship"), {}, function()' output_text = re.sub(r'(screen.add\()([A-Z]+)\("([^&]+)"\)(.*)', r'\1"\3"\4', input_text) print(output_text)
运行后输出符合期望:
screen.add("Remove the Pirates from the Ship", {}, function()
正则表达式逻辑拆解
(screen.add\():捕获screen.add(开头部分,替换时原样保留([A-Z]+):匹配需删除的全部大写文本(满足需求1)\(":匹配大写文本后的("结构(对应需求2、3的位置要求)([^&]+):捕获引号内的目标内容,确保后续保留原文本"\):定位需要删除的多余右括号(满足需求4的删除要求)(.*):捕获后续所有代码内容,保证替换后这部分不受影响
替换时通过引用捕获组,将保留的部分重新拼接,一次性完成所有操作。
内容的提问来源于stack exchange,提问作者Genius500
相关产品推荐
相关产品推荐

