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

如何用正则捕获关键词Customer后所有以14/15开头的6位数字

正则匹配方案

最终可用正则表达式

(?s)(?:\G(?!^)|Customer\s).*?(?<!\d)(1[45]\d{4})(?!\d)

开启全局匹配模式后,所有捕获组1的结果即为你需要的「Customer 」之后出现的、以14或15开头的6位数字。

正则逻辑说明

  • (?s):开启单行匹配模式,让.可以匹配换行符,适配多换行的输入场景
  • (?:\G(?!^)|Customer\s):非捕获组限定匹配范围,确保所有匹配都在「Customer 」之后:
    • 第一个分支\G(?!^):锚定到上一次匹配成功的结束位置,排除字符串初始位置的情况,避免匹配到「Customer 」之前的内容
    • 第二个分支Customer\s:首次匹配锚定到关键词「Customer 」出现的位置
  • .*?:非贪婪匹配任意字符,直到找到下一个符合规则的数字
  • (?<!\d)(1[45]\d{4})(?!\d):精准匹配目标数字:
    • (?<!\d)和(?!\d):限定目标数字前后不能紧跟其他数字,避免截取长数字的中间6位
    • 1[45]\d{4}:匹配以14或15开头的6位数字,捕获组1会单独提取该数字

原写法问题说明

你之前的写法没有明确锚定匹配的连续起始边界,非贪婪模式只能拿到第一个匹配结果,贪婪模式只能拿到最后一个匹配结果,新增分支的写法没有和上一次匹配的位置绑定,确实存在匹配到「Customer 」之前内容的逻辑漏洞,本方案通过\G锚点完全解决了这个问题。

测试效果

针对你给出的示例输入,该正则会准确捕获到两个符合要求的结果:147667、148266,不会匹配到其他不符合规则的数字,也不会匹配到「Customer 」之前的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:06:02