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

Python使用正则表达式提取Ref标识后目标编号的解决方案

解决方案

你可以直接调整正则表达式的捕获规则,无需额外做二次字符串处理,就能直接得到目标结果:

实现代码

import re

Sentence = "Messers Buyer's Ref : LSM-021042-5 Payment : Port of Loading  and Ref : G2879G has applied with Ref : 031049 is also applied"
result = re.findall(r'Ref : (?:[A-Z]+-)?(\w+)(?:-\d)?', Sentence)
print(result)

代码输出

['021042', 'G2879G', '031049']

正则规则说明

  • Ref : 先匹配固定的前缀标识,定位编号所在的位置
  • (?:[A-Z]+-)? 非捕获组,匹配编号前可能存在的大写字母+横杠组合(例如示例中的LSM-),?表示该部分可选,不存在时也不影响匹配
  • (\w+) 核心捕获组,匹配你需要的目标编号内容,re.findall遇到捕获组时只会返回捕获组内的匹配结果
  • (?:-\d)? 非捕获组,匹配编号后可能存在的横杠+单个数字后缀(例如示例中的-5),?表示该部分可选

如果后续遇到后缀数字不止1位的场景,可以将最后一段规则调整为(?:-\d+)?即可适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:54:01