需要正则表达式合并

时间:2015-02-24 06:29:40

标签: regex

我需要针对特定​​模式(xxxx.xx.xx)检查输入 例如:1234.12.34,2.3.5,22.22,1.0.3

我制定了这些规则

\d{0,4}
\d{0,4}\.\d{1,2}
\d{0,4}\.\d{1,2}\.\d{1,2}

有没有办法将3条规则合并为一条? 我想过使用嵌套在后面部分的?运算符,但我无法弄清楚正确的语法 任何指针都赞赏
感谢。

2 个答案:

答案 0 :(得分:2)

您可以尝试下面的内容,

^\d{0,4}(?:(?:\.\d{1,2})?\.\d{1,2})?$

DEMO

?会将之前的标记变为可选标记。并且不要混淆非捕获组中的?

(?:...)名为non-capturing group,只会进行匹配。它不会捕获任何角色。此?模式中的最后(?:\.\d{1,2})?将转换整个模式,即(?:\.\d{1,2})为可选项。

^声称我们刚开始,$声称我们已经结束了。

答案 1 :(得分:1)

^(?:\d{0,4}|\d{0,4}\.\d{1,2}|\d{0,4}\.\d{1,2}\.\d{1,2})$

试试这个。看看演示。

https://regex101.com/r/aI4rA5/1

|或运营商就是您所需要的。