2015-04-29 30 views
2

我有以下正則表達式以匹配長度爲1和4之間的任何數字,如果需要則使用-字符。匹配除'-0'以外的任何數字(或否定數字)

^[-]?\d{1,4}$ 

但是,我想排除可能的匹配列表-0。我試過以下,但它似乎打破了一切。

^[-]?(?!-0)\d{1,4}$ 

我該如何實現我的目標?

+0

您是否也想匹配「-03」? –

回答

1

只要把不包括組之前:

^(?!-0)-?\d{1,4}$ 

請注意,你不必把括號內的減號。

+0

我不敢相信我沒有想到!謝謝,這就是我所需要的,儘管我稍微修改了'(?! - 0 $)',這樣字符串如'-012'就會匹配(我將在後面去掉前面的0)。 –

+0

@DavidGard我想知道這個,因此在你的問題下的評論。 –

1

更改爲:

^(?!-?0)[-]?\d{1,4}$ 

這將不會匹配任何號碼以 「0」 或開始 「-0」。

如果你想匹配的數字「0」,而不是「-0」開頭,使用:

^(?!-0)[-]?\d{1,4}$ 
1

只需通過連接正數和負數:

^([0-9]{1,4})|(-[1-9][0-9]{0,3})$ 
相關問題