使这个正则表达式更短

时间:2013-11-13 13:19:20

标签: php regex

我想知道是否可以简化像这样的正则表达式

/^[0-9]{2}[ .-]?[0-9]{2}[ .-]?[0-9]{2}[ .-]?[0-9]{2}[ .-]?[0-9]{2}$/

更短暂的

类似

/^([([0-9]{2})([ .-]?))]{4})[0-9]$/

但我似乎没有把它弄好,也没有接近搞清楚。

2 个答案:

答案 0 :(得分:4)

这个正则表达式:

/^[0-9]{2}[ .-]?[0-9]{2}[ .-]?[0-9]{2}[ .-]?[0-9]{2}[ .-]?[0-9]{2}$/

可缩短为:

/^(?:[0-9]{2}[ .-]?){4}[0-9]{2}$/

答案 1 :(得分:2)

看看这个:

^([0-9]{2}[ .-]?){5}$

Regular expression visualization

它短得多,但也会匹配11-11-11-11-11-。确切的等价物由@anubhava发布。

你原来的正则表达式看起来像这样: Regular expression visualization