2017-06-14 1062 views
-2

我需要一個正則表達式,其中數字不能以0開頭。正則表達式在排序中不應該允許「.0」。
實施例:1.0, 1.0.1, 1.1.0正則表達式中的數字不應該以0開頭

然而,該序列允許
實例:1, 1.10, 1.10.1

正則表達式我曾嘗試是本([1-9]|([1-9]+)+(\.[1-9]+))$

並且輸出是它未能直到2 「」在此之後失敗,例如它將失敗至1.0.0。然而,它在1.0.0.2匹配

+0

我想我知道你的意思,但你應該知道,'1.10.101.11.10.1'不是十進制值的既不是'1.1.0'。兩者都使用數字和點,但這並不是十進制數。你需要更精確。 –

+1

而你的問題是......? – EJoshuaS

+1

到目前爲止您嘗試過什麼? – Brydenr

回答

2

我的答案採取將

([1-9][0-9]*)(\.([1-9][0-9]*))* 

它將完全一致選擇作爲海報介紹,用一系列句點分隔的整數,其中每個整數不以0開頭的。

如果應用程序需要的選擇是在一行的開始,我會建議增加一個符號(^)作爲正則表達式的第一個字符。

+0

爲了幫助OP理解這裏發生了什麼,我已經在下面的僞代碼中提供了我提供的路線。 找到1到9之間的數字 找到0或9之間0或9的數字 循環 檢查一段時間。如果找到一個,重複開始代碼來 搜索0之間的非零數字和零個或多個號碼 - 9. 如果上述失敗,停止循環。 – gsharpe

相關問題