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

如何用正则匹配分隔符统一的数字列表字符串?

正则匹配分隔符一致的方括号数字串

要实现只匹配方括号内所有分隔符完全一致的数字字符串,核心是通过捕获组+反向引用强制所有分隔符与第一个分隔符相同,修正后的正则表达式如下:

/\[\s*\d+\s*([,;])\s*(?:\d+\s*\1\s*)*\d+\s*\]/gx

正则各部分解析

  • \[:匹配开头的左方括号
  • \s*:匹配数字、分隔符前后允许存在的任意空白(包括无空白的情况)
  • \d+:匹配第一个数字(至少1位,避免空内容)
  • ([,;]):捕获第一个出现的分隔符(逗号或分号),后续用\1反向引用确保所有分隔符和它一致
  • (?:\d+\s*\1\s*)*:非捕获组,重复「数字+空白+一致分隔符+空白」的结构,支持多个数字的场景
  • \d+:匹配最后一个数字,保证至少有两个数字(若需支持单个数字,可调整为\d*)
  • \s*:匹配最后一个数字后的空白
  • \]:匹配结尾的右方括号

验证效果

  • 匹配:[1,2,3,20,4](全逗号分隔)、[5;67;8;1;6](全分号分隔)
  • 不匹配:[1,2;4;5,6,7;8](混合逗号和分号)

原正则的问题

你之前的正则/\[(?> \d*[,;]) * \d* \]/gx仅检查了方括号内存在数字和分隔符,但没有校验所有分隔符的一致性,因此会匹配混合分隔符的不符合场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 01:11:01