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

Python中匹配分数且排除日期格式的正则表达式如何实现

正则匹配分数(忽略日期格式)解决方案

实现思路

我们需要匹配仅含1个斜杠的x/y数字格式,同时排除包含2个斜杠的dd/mm/yyyy类日期片段即可,核心通过断言控制匹配片段前后不会出现额外斜杠,避免匹配到日期中的局部片段。

可用正则表达式

/(?<!\/)\b\d+\/\d+\b(?!\/)/g
各部分释义:

  • (?<!\/) 负向后行断言:确保匹配的内容前没有斜杠,不会匹配到日期格式里的xx/xx后缀片段
  • \b 单词边界:确保匹配的是独立的数字+斜杠片段,不会误匹配到夹杂在其他字符中的内容
  • \d+\/\d+ 核心匹配规则:匹配「1个以上数字 + 斜杠 + 1个以上数字」的分数格式
  • (?!\/) 负向前瞻断言:确保匹配的内容后没有斜杠,不会匹配到日期格式里的xx/xx前缀片段

使用示例(JavaScript环境)

const testStr = "1/4 test test is the date for 2021/12/31, 1/3  1/5";
const scoreRegex = /(?<!\/)\b\d+\/\d+\b(?!\/)/g;
const matchResult = testStr.match(scoreRegex);
console.log(matchResult); // 输出:["1/4", "1/3", "1/5"]

兼容低版本环境方案

如果运行环境不支持后行断言,可以先把所有含两个斜杠的日期类片段替换移除,再匹配剩余的分数格式:

const testStr = "1/4 test test is the date for 2021/12/31, 1/3  1/5";
// 先移除所有三个数字段用两个斜杠连接的日期格式
const strWithoutDate = testStr.replace(/\d+\/\d+\/\d+/g, '');
const matchResult = strWithoutDate.match(/\b\d+\/\d+\b/g);
console.log(matchResult); // 输出同样为 ["1/4", "1/3", "1/5"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:18:02