2012-12-19 16 views

回答

5

查找以下一個孤獨的0或1-9跟任何其他數字。

^(0|[1-9]\d*)$ 

如果你想大字符串裏的匹配號碼,使用字界碑\b代替^$

\b(0|[1-9]\d*)\b 
+0

這將是任何不同的我在asp.net中使用它,它似乎並沒有工作! – Xerxes

+0

@xerxes,你可能需要加倍反斜槓 - 我不是一個asp.net用戶,但它是Strings作爲正則表達式最常見的問題。 – FrankieTheKneeMan

0

你並不需要的一切迫使成一個單一的正則表達式去做這個。

如果您使用多個正則表達式,每個正則表達式都會進行特定的檢查,這會更加清晰。在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甚至不使用正則表達式可言,因爲你是在比較到一個單一的價值。

讓您的宿主語言的表現形式被使用,而不是試圖將邏輯嵌入到正則表達式中。

相關問題