2011-10-28 82 views
2

我需要一個.NET正則表達式,它表示一個十進制數字,小數點左邊最多9位數字,右邊1位或0位數字。我有什麼不工作。十進制正則表達式問題

以下是我有:

@"^\d{0,9}[\.\d]{0,1}$" 

我在做什麼錯?此正則表達式目前允許10位小數點的左側,沒有數字的權利,雖然它不接受這樣的字符串 - >12.

回答

4

好你個字符類[\.\d]和你說:

請匹配1或0之一。或數字。

你真的想不過這樣做會是這樣什麼:

^\d{0,9}(\.\d)?$ 

這從字符串比賽開始說0到9的數字(也許你需要做到這一點{1,9},因爲它現在站立一個空字符串也將匹配),然後可能是一個數字點,然後是字符串的結尾。

+0

很好的解釋 - 謝謝你。我仍然試圖完善我對正則表達式的理解。 – novacara

+0

一個字符類是一個邏輯或。它以一個未指定的順序匹配其中所有字符的單個字符。因此,即使[\。\ d] {2}可能會錯誤,因爲它可能匹配2.或..或.2或22.接受答案,如果它解決了您的問題。 – FailedDev

+0

我做到了。它讓你等待10分鐘。 – novacara

0

應該說

^\d{1,9}(\.\d)?$