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

如何使用正则提取指定文本区间内第4个空格前的物料编号

正则提取解决方案

你可以直接通过单条正则一步获取目标物料编号,无需拆分两步处理,适配换行场景的正则如下:

(?<=Date)[\s\S]*?((?:\S+\s){3}\S+)(?=[\s\S]*?Article)

直接取第一个捕获分组的结果即可得到你需要的6ZZ 999 123 S。


匹配规则说明

  • (?<=Date):后视断言,限定匹配的起始位置为Date关键词之后
  • [\s\S]*?:非贪婪匹配任意字符(包括换行符),跳过Date后面的换行、空白等冗余内容
  • ((?:\S+\s){3}\S+):核心捕获分组,对应你要的物料编号:
    • (?:\S+\s){3}:匹配3组「非空字符序列+分隔空格」的组合,对应6ZZ 、999 、123 三段
    • \S+:匹配第4段非空字符S,整体刚好是第4个分隔空格之前的所有内容
  • (?=[\s\S]*?Article):前视断言,限定匹配范围到Article关键词之前,避免匹配到无效内容

兼容方案

如果你使用的正则引擎不支持非固定长度的后视断言,可先按你现有逻辑提取Date和Article之间的中间内容,再对中间内容执行以下正则匹配,取全匹配结果即可:

^\s*(?:\S+\s){3}\S+

内容的提问来源于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.26 03:06:05