我正在尝试将数字与正则表达式匹配,如:
34-7878-3523-4233
用这个:
^[0-9][0-9-]*-[0-9-]*[0-9]$
但表达式也允许
34--34 -------- 88
那么如何在数字之间只允许一个连字符?
答案 0 :(得分:17)
答案 1 :(得分:6)
那是因为,您已将连字符包含在角色类中允许的字符中。你应该把它放在外面。
您可以尝试这样的事情: -
^([0-9]+-)*[0-9]+$
现在这将匹配0或更多重复某些数字后跟连字符。然后是最后一个或多个数字。
答案 2 :(得分:3)
使用normal*(special normal*)*
模式:
^[0-9]+(-[0-9]+)+$
其中normal
为[0-9]
且special
为-