正则表达式只能包含数字和“ - ”字符

时间:2013-10-31 10:09:31

标签: regex

我想将数字与“ - ”字符匹配。

例如:

123-456 - Valid 
1-2-3-4 - Valid
223-213- - Invalid
-3423-3 - Invalid
ASD34-2 - Invalid

我测试了这个:

  

^([0-9] - )* $

但工作不正常。

2 个答案:

答案 0 :(得分:2)

这与数字中的多个-匹配,与其他答案不同:

^\d+(?:-\d+)*$

答案 1 :(得分:1)

非常接近不?只有末端短划线的情况才会通过。而不是[0-9]你可以使用\ d。

^\d(\d|-\d)*$

这一个在开始时至少说一个数字,可选地后面跟着更多的数字或短划线,后面至少有一个数字 这将不会匹配多个跟随破折号,如12 --- 34