首页 > 解决方案 > 正则表达式(开始时 1 到 3 个字符,后来 11 到 13 位)或(11 到 14 位)?char 可以是小写或大写

问题描述

我正在尝试找出将从字符串 Ref 中检测参考编号的正则表达式。编号可以是以下格式,

[dddddddddddddd] 或 [aZ][ddddddddddd] , Ref No 可以是(1 到 3 个字符开始,后面 11 到 13 位)或(11 到 14 位)

我试过正则表达式 /^[AZ]{1,3}|[0-9]{11,14}$/ 但它没有返回 Ref。没有。例如 D1234567891,任何指导表示赞赏

标签: regex

解决方案


您可以在开始时使用交替匹配 1 到 3 个字符,然后再匹配 11 到 13 位或 11 到 14 位。

^(?:[a-zA-Z]{1,3}[0-9]{11,13}|[0-9]{11,14})$

正则表达式演示

细节

  • ^在行首断言位置
  • (?:非捕获组
    • [a-zA-Z]{1,3}[0-9]{11,13}匹配小写或大写字符 1 - 3 次,后跟数字 11 - 13 次
    • |或者
    • [0-9]{11,14}匹配一个数字 11 - 14 次
  • )关闭非捕获组
  • $在行尾断言位置

推荐阅读