regex:数字和空格(10或14个数字)



如何编写一个接受10或14个数字的正则表达式,这些数字以1、2或3个数字为一组,用一个空格分隔?

示例:123 45 6 789 1 is valid1234 567 8 9 1 is not valid(4位一组(123 45 6 789 109 123 8374 is not valid(不是10或14位(

编辑这是我迄今为止尝试过的

[0-9 ]{10,14}+

但它也验证了11、12、13个数字,并且不检查数字组

您可以将此regex与前瞻断言一起使用:

^(?=(?:d ?){10}(?:(?:d ?){4})?$)d{1,3}(?: d{1,3})+$

RegEx演示

  • 这里(?=...)是前瞻断言,它强制输入中存在10或14位数字
  • d{1,3}(?: d{1,3})+用1到3个用空格分隔的数字匹配输入,在开始或结束时不允许有空格

aggtr,

您可以将您的用例与以下内容相匹配:

^(?:ds?){10}$|^(?:ds?){14}$

^表示字符串的开头,$表示字符串的结尾。(?:…(表示非捕获组。因此,|之前的部分表示一个开始的字符串,它有一个非捕获组,后面跟着一个可选的空格,后面紧跟着字符串的末尾,正好有10个项目。通过放置|,您可以为您的模式设置10或14。

编辑我错过了您要求的按1、2或3位数字分组的部分。

最新更新