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

正则表达式仅捕获首个匹配项,如何获取两个含missing的独立句子?

解决正则仅匹配第一个包含"missing"的句子问题

问题分析

你当前的正则仅返回第一个匹配,核心原因有两个:

  1. 未开启全局匹配(g标志),默认只返回首个匹配结果;
  2. 正则结构的非贪婪匹配逻辑,在未开启单行模式(s标志)时,.无法匹配换行符,可能导致跨行句子匹配不完整。

修正后的正则表达式

(?:^|\.)\s*([^.]*?missing[^.]*)\.

需同时开启两个标志:

  • g:全局匹配,遍历整个字符串捕获所有符合条件的结果;
  • s:单行模式,让.匹配包括换行符在内的所有字符,适配跨行的句子。

正则各部分解释

  • (?:^|\.):匹配字符串开头或句子前的句号(非捕获组,不保留该部分);
  • \s*:匹配0个或多个空白字符(包括空格、换行),处理句子开头可能的空白或无空格衔接(如原字符串中personnel.During的情况);
  • ([^.]*?missing[^.]*):捕获组,精准匹配包含missing的句子内容:
    • [^.]*?:非贪婪匹配任意非句号字符,直到找到missing;
    • missing:指定关键词;
    • [^.]*:匹配missing之后到句号前的所有非句号字符;
  • \.:匹配句子结尾的句号。

匹配结果

在regex101中使用上述正则+标志后,将得到两个独立匹配项:

  • 匹配1:Mazda67 vehicle J8473 operated with R/H Nose tire missing Tang Washer following replacement of wheel assembly by dealership maintenance personnel.
  • 匹配2:During an inspection at Ford, maintenance personnel found the tang washer missing and replaced R/H engine mount.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 09:03:17