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

正则表达式需求:匹配含/-分隔的6位及以内数字序列

正则表达式匹配6位及以内带分隔符的数字序列

你的需求是匹配包含6位及以内数字的序列,数字间可夹杂任意数量的/或-分隔符(包括连续分隔符),同时排除数字总数超过6的序列。

原正则的问题

你尝试的pattern = r'\d([\/-]\d){1,5}'存在两个核心问题:

  1. 强制要求分隔符和数字交替出现,无法匹配12//-34这类包含连续分隔符的情况
  2. 仅能匹配“数字+分隔符+数字”的固定组合,无法处理分隔符出现在序列开头或结尾的场景

正确的正则表达式

pattern = r'(?<!\d)(?:[\/-]*\d){1,6}[\/-]*(?!\d)'

正则解释

  • (?<!\d):负向后行断言,确保匹配的序列前面不是数字,避免从长数字串中截取部分内容
  • (?:[\/-]*\d){1,6}:非捕获组,重复1-6次“0个或多个分隔符+1个数字”,保证数字总数在1-6之间,同时允许分隔符任意穿插
  • [\/-]*:匹配序列结尾可能存在的任意数量分隔符
  • (?!\d):负向前行断言,确保匹配的序列后面不是数字,避免匹配长数字串的一部分

测试验证

可匹配场景

  • "abc 12-34 def" → 匹配12-34(数字总数4)
  • "Phone number: 123/45" → 匹配123/45(数字总数5)
  • "sequence: 12//-34" → 匹配12//-34(数字总数4)
  • "My code is 1-2-3-4" → 匹配1-2-3-4(数字总数4)

不可匹配场景

  • "too many: 1234-567-89" → 数字总数9,超过6,不匹配
  • "too many; 1234-567" → 数字总数7,超过6,不匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 00:29:55