正则表达式模式无法弄清楚

时间:2016-05-26 16:11:35

标签: php regex

我需要一个用于php的正则表达式模式。它只接受以下两种模式。

XXXX-XXXX-2
XXXX-XXX-3

这里,X =数字

例如,它会接受,

1111-1111-2
1234-567-3
7894-753-2
5287-6325-3

但它不会接受,

526-5248-2
7895-4125-1
7854-856-4
asas-wewe-y

等等。

这种模式的正则表达式是什么?

2 个答案:

答案 0 :(得分:5)

这将有效

^\d{4}-\d{3,4}-[23]$

<强> Regex Demo

正则表达式细分

^ #Start of string
 \d{4} #Match 4 digits
  - #Match - literally
  \d{3,4} #Match 3 or 4 digits
  - #Match - literally
  [23] #Match 2 or 3
$ #End of string

答案 1 :(得分:2)

答案

有多种方法可以实现。这是一种方法:

^\d{4}-\d{3,4}-(2|3)$

解释

  1. \d将匹配任何数字
  2. {4}将确保匹配4次
  3. -将与连字符
  4. 匹配
  5. \d将匹配任何数字
  6. {3,4}将匹配数字3或4次
  7. -将与连字符
  8. 匹配
  9. (2|3)将匹配2 OR 3
  10. 在线测试

    您可以在线测试:

    SmartyPants