我有以下正则表达式以匹配长度为1和4之间的任何数字,如果需要则使用-
字符。匹配除'-0'以外的任何数字(或否定数字)
^[-]?\d{1,4}$
但是,我想排除可能的匹配列表-0
。我试过以下,但它似乎打破了一切。
^[-]?(?!-0)\d{1,4}$
我该如何实现我的目标?
我有以下正则表达式以匹配长度为1和4之间的任何数字,如果需要则使用-
字符。匹配除'-0'以外的任何数字(或否定数字)
^[-]?\d{1,4}$
但是,我想排除可能的匹配列表-0
。我试过以下,但它似乎打破了一切。
^[-]?(?!-0)\d{1,4}$
我该如何实现我的目标?
只要把不包括组之前:
^(?!-0)-?\d{1,4}$
请注意,你不必把括号内的减号。
我不敢相信我没有想到!谢谢,这就是我所需要的,尽管我稍微修改了'(?! - 0 $)',这样字符串如'-012'就会匹配(我将在后面去掉前面的0)。 –
@DavidGard我想知道这个,因此在你的问题下的评论。 –
更改为:
^(?!-?0)[-]?\d{1,4}$
这将不会匹配任何号码以 “0” 或开始 “-0”。
如果你想匹配的数字“0”,而不是“-0”开头,使用:
^(?!-0)[-]?\d{1,4}$
只需通过连接正数和负数:
^([0-9]{1,4})|(-[1-9][0-9]{0,3})$
您是否也想匹配“-03”? –