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

使用REGEX忽略指定关键词后提取行内后续文本的技术求助

原正则问题排查

  • 分支顺序逻辑错误:把长度更短的supplied by匹配分支放在前面,正则匹配时会优先触发短规则,导致supplied by M/S里的M/S不会被前缀规则吞掉,残留在提取结果中
  • 空格匹配规则僵硬:写死了supplied by和M/S之间的空格数量,无法适配不同输入里空格数量不一致的场景
  • 量词使用错误:supplied by.里的.仅能匹配单个任意字符,无法覆盖前缀后可能存在的多个连续空格

可直接使用的正则方案

方案1:支持可变长度后行断言的引擎(Python、JS ES2018+、Java 9+等适用)

直接匹配提取内容,无需额外处理捕获组:

(?<=\bsupplied by(?:\s+M\/S)?\s+).*

规则说明:

  • \b 匹配单词边界,避免误命中包含supplied by片段的其他长单词
  • (?:\s+M\/S)? 非捕获组,匹配可选的「任意数量空格 + M/S」片段
  • \s+ 匹配前缀后连接目标内容的任意数量空格
  • .* 匹配从当前位置到行尾的所有内容

方案2:不支持可变长度后行断言的引擎(旧版JS、Java 8及更早版本适用)

用捕获组提取目标内容,取第1个捕获组的返回值即可:

\bsupplied by(?:\s+M\/S)?\s+(.*)

匹配效果验证

对应你的输入示例,上述正则可正确提取到以下结果:

  1. MOBIS INDIA LIMITED
  2. MANDO AUTOMOTIVE INDIA LIMITED
  3. MAHINDRA AND MAHINDRA AUTO SECTOR

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:36:05