You need to enable JavaScript to run this app. JavaScript正则需求:匹配赛事进行分钟标记,排除比分与开赛时间
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript正则需求:匹配赛事进行分钟标记,排除比分与开赛时间

适配需求的正则实现方案

正则表达式

/(?<=^|\s|newLine)((?:[1-9]|[1-8][0-9]|90|120)(?:\+[1-9])?)(?=\s)/gm

规则说明

  • 锚定匹配位置:通过后行断言限定,仅匹配前面为字符串开头、空白字符、或已插入的newLine标记的内容,避免误匹配队名、比分中间嵌入的数字
  • 限定匹配范围:
    • 覆盖常规比赛分钟:1-9的个位数、10-89的两位数、90分钟
    • 覆盖伤停补时:90+1至90+9的格式
    • 覆盖加时赛分钟:120分钟、120+1至120+9的格式
    • 排除无效数字:不会匹配100-119、121及以上不存在的赛事分钟标识
  • 排除误匹配场景:
    • 通过先行断言要求匹配内容后紧跟空白字符,直接排除带冒号的开赛时间(如20:30数字后为冒号)、带横杠的赛事比分(如1-0数字后为横杠)

插入拆分标记的实现逻辑

将匹配到的分钟数替换为newLine加原分钟内容即可,示例:

// 以JavaScript为例,其他语言替换逻辑完全一致
const cleanedText = originalText.replace(/(?<=^|\s|newLine)((?:[1-9]|[1-8][0-9]|90|120)(?:\+[1-9])?)(?=\s)/gm, 'newLine$1');

误匹配测试验证

测试输入是否匹配原因
25 阿森纳 1-0 切尔西是25为常规比赛分钟,前后符合边界要求
90+3 巴萨 2-2 皇马是为伤停补时格式,前后符合边界要求
120 拜仁 0-0 多特是为加时赛结束标识,前后符合边界要求
20:30 曼联 vs 利物浦否数字后紧跟冒号,不满足后接空白的要求
曼联 1-0 利物浦否数字后紧跟横杠,不满足后接空白的要求
1860慕尼黑 2-0 纽伦堡否数字后紧跟其他数字,不满足后接空白的要求

注:该正则依赖正则引擎的零宽断言能力,当前主流的Node.js、Chrome等运行环境均已原生支持,若使用的环境不支持后行断言,可将边界条件改为捕获组整体匹配,替换时保留前置边界内容即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.14 14:27:05