正则表达式允许数字和中间只有一个连字符

ro *_* ko 7 php regex

我想写一个正则表达式来允许数字,只有一个连字符,中间(不能在开始或结尾)说模式:02-04,02是可以接受的,但模式:----0204-02-04-06不可接受

我试过这样的东西,但是这会允许 - 在开始时也允许多个 -

'/^[0-9 \-]+$/'
Run Code Online (Sandbox Code Playgroud)

我对正则表达式不太好,所以一点点解释会真正有用.

编辑:很抱歉再次对此提出错误,但我需要的数字只有2位数(123-346)应视为无效.

Ous*_*ama 13

试试这个:

/^\d{1,2}(-\d{1,2})?$/
Run Code Online (Sandbox Code Playgroud)

一个或两个数字,后跟可选,(连字符后跟一个或两个数字)


Joe*_*oey 5

相当简单:

^\d+(-\d+)?$
Run Code Online (Sandbox Code Playgroud)

至少有一个(+)数字(\d),后跟一个包含连字符 - 减号(-)的可选组,然后再次至少有一个数字.