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

Python如何删除指定子串及后续数字且不影响其他位置数字

实现代码

直接用正则匹配你需要删除的完整片段,一次性替换即可,不需要拆分字符串再逐个处理:

import re

somestring = "Zero function argument 1 since code 345 and from code 8476 then it goes on"
# 匹配所有符合「since code 数字」或「from code 数字」的片段替换为空
res = re.sub(r'(since|from) code \d+', '', somestring)
# 合并替换后产生的连续空格、去除首尾空格
res = ' '.join(res.split())
print(res)

运行后输出:

Zero function argument 1 and then it goes on

原理解释

  1. 正则规则(since|from) code \d+只会命中你指定要删除的两类完整片段:
    • (since|from)匹配两种前缀
    • \d+匹配任意长度的可变数字
    • 不会匹配到argument 1这类不命中前缀规则的数字
  2. 替换后用' '.join(res.split())处理空格,既可以把替换后产生的连续空格合并为单个空格,也能自动清除首尾多余空格,不会出现空字符串的问题

原代码问题说明

你原来的实现是先删掉了since code和from code文本,把后面的数字单独留在了字符串里,后续全量替换所有数字的操作自然会误伤argument 1里的1,同时替换文本时没有处理相邻空格,拆分后就会出现大量空字符串。

内容的提问来源于stack exchange,提问作者Gravity Mass

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:18:03