Regex N位数的正则表达式始终以2开头

Regex N位数的正则表达式始终以2开头,regex,regex-lookarounds,regex-group,Regex,Regex Lookarounds,Regex Group,我想验证这些规则: 1) 只有数字 2) 必须有13位数字 3) 总是从数字2开始 4) 在前8位、2位和最后一位之前可能有点 类似数字: (XXXXXXXX.XX.XX.X) 例如: 2437313600001 - 23610579.00.03.1 到目前为止,我有这个 ^([0-9]-?){13}$ 如何解决此问题?您可以使用此正则表达式 ^2\d{7}(?:\.?\d){5}$ 说明: ^-字符串的开头 2-仅以2开头第一个字符 \d{7}-接下来的七个字符可以是任意数字 (?:

我想验证这些规则:

1) 只有数字

2) 必须有13位数字

3) 总是从数字2开始

4) 在前8位、2位和最后一位之前可能有点 类似数字:

(XXXXXXXX.XX.XX.X)
例如:

2437313600001 - 23610579.00.03.1
到目前为止,我有这个

^([0-9]-?){13}$

如何解决此问题?

您可以使用此正则表达式

^2\d{7}(?:\.?\d){5}$
说明:

  • ^
    -字符串的开头
  • 2
    -仅以
    2
    开头第一个字符
  • \d{7}
    -接下来的七个字符可以是任意数字
  • (?:\.?\d){5}
    -接下来的五个字符可以是任何数字,但前面可以有一个可选的点
  • $
    -字符串结尾

您的正则表达式有什么问题?在哪些情况下会失败?假阳性?假阴性?您显示的正则表达式有一个
-
,我在规定的规则中找不到。根据您的规则,我宁愿考虑或只允许在前8位之后使用5位数字或所需的模式: