可能重複:
Decimal or numeric values in regular expression validation基本數字和小數點的正則表達式?
我希望創建一個正則表達式來檢查輸入的號碼。這個數字:
- 必須爲正數
- 可以有很多數字
- 可以有很多時間,但沒有連續的小數點
- 可與過0
- 不能帶小數點導致點
例如:
有效輸入S:
- 321.99.45.6
- 1.2
- 0.1
無效輸入:
- 33..4
- -1.0
- 0.225
謝謝
可能重複:
Decimal or numeric values in regular expression validation基本數字和小數點的正則表達式?
我希望創建一個正則表達式來檢查輸入的號碼。這個數字:
例如:
有效輸入S:
無效輸入:
謝謝
你應該做這樣的事情
^(?:\d+\.)*\d+$
它只是匹配至少一個數字,然後按小數點但很多時候它需要的模式,同時確保數字以數字結尾。
爲什麼雙「+」? – 2012-08-06 16:15:56
double plus只是一個優化,所以正則表達式引擎知道它不會回溯,它只是讓它快得多:) – 2012-08-06 16:17:41
雖然在這種情況下並不是必須的,因爲點是強制性的,所以沒有什麼可以回溯到。在@ JosephSilber現在已經刪除的解決方案中,有必要避免災難性回溯的風險。 – 2012-08-06 16:18:42
你爲什麼不看在編程語言的BNF範式,如C:如果你想允許小數點開頭這也應該工作?
這表明你對任何形式的數字的正則表達式...
[你嘗試過什麼?](http://mattgemmell.com/2008/12/08/what-have-you-tried /) – 2012-08-06 16:04:47