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

如何移除指定下划线后的字符?Python代码匹配异常求助

解决方法:精准匹配数字后的下划线进行截断

原代码的问题在于直接查找第一个下划线,导致误匹配了photo_id里的下划线,进而错误截断内容。要实现只移除数字后面的下划线及后续子串,用正则表达式来精准匹配是最可靠的方式。

修正后的代码

import re

# 用with语句自动管理文件,避免资源泄漏
with open("text.txt", "r") as inputFile, open("result.txt", "w") as exportFile:
    for line in inputFile:
        # 正则匹配:捕获数字组,替换掉数字后的下划线及后续字母数字串
        new_line = re.sub(r'(\d+)_[\w]+', r'\1', line)
        exportFile.write(new_line)

代码说明

  • re.sub(r'(\d+)_[\w]+', r'\1', line):
    • (\d+):捕获连续的数字部分,作为后续替换保留的内容
    • _[\w]+:匹配数字后面的下划线,以及下划线之后的所有字母数字字符
    • 替换为\1,也就是之前捕获的数字部分,这样就完成了移除目标下划线及后续子串的需求
  • 使用with语句处理文件,无需手动调用close(),更安全规范

测试你的示例输入:

photo_id 102297_skdjksd223238 text black dog in a water

处理后会输出:

photo_id 102297 text black dog in a water

完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 17:01:22