我需要一個正則表達式允許一個單一的0或任何其他數量的數字不以零所以開始:正則表達式來允許「單0」或「數字任何其他數量
0或23443或984756被允許的,但0123是不允許的。
我有隻允許1到9
[1-9]\d
我需要一個正則表達式允許一個單一的0或任何其他數量的數字不以零所以開始:正則表達式來允許「單0」或「數字任何其他數量
0或23443或984756被允許的,但0123是不允許的。
我有隻允許1到9
[1-9]\d
查找以下一個孤獨的0或1-9跟任何其他數字。
^(0|[1-9]\d*)$
如果你想大字符串裏的匹配號碼,使用字界碑\b
代替^
和$
:
\b(0|[1-9]\d*)\b
這將是任何不同的我在asp.net中使用它,它似乎並沒有工作! – Xerxes
@xerxes,你可能需要加倍反斜槓 - 我不是一個asp.net用戶,但它是Strings作爲正則表達式最常見的問題。 – FrankieTheKneeMan
你並不需要的一切迫使成一個單一的正則表達式去做這個。
如果您使用多個正則表達式,每個正則表達式都會進行特定的檢查,這會更加清晰。在Perl中,你會這樣做,但你可以適應C#就好了。
if (($s eq '0') || (($s =~ /^\d+$/) && not ($s =~ /^0/)))
你已經做了明確清晰的意圖是什麼:
if ((string is '0') OR ((string is all digits) AND (string does not start with '0')))
注意,第一次檢查,看是否該字符串0
甚至不使用正則表達式可言,因爲你是在比較到一個單一的價值。
讓您的宿主語言的表現形式被使用,而不是試圖將邏輯嵌入到正則表達式中。
你在用什麼語言? –
C夏普,ASP.NET – Xerxes