表達我想要得到這樣的匹配:定期對版本號
3.1.0
10.5.1
0.5
這可能代表構建版本編號系統。
不匹配:
3.1.
我想這正則表達式:
[0-9]+\.[0-9]+
這隻0.5
但不10.5.1
得到。
表達我想要得到這樣的匹配:定期對版本號
3.1.0
10.5.1
0.5
這可能代表構建版本編號系統。
不匹配:
3.1.
我想這正則表達式:
[0-9]+\.[0-9]+
這隻0.5
但不10.5.1
得到。
:
\d+(?:\.\d+)+
我想這應該更有意義:
^(?:0|[1-9][0-9]*)(?:\.(0|[1-9][0-9]*))*$
每個數字分量已經開始與非零如果它超過1位數。
不幸的是,它可能是010.5.3,所以它確實不是一個完整版本的系統,但非常喜歡它。 –
@LordCover沒關係。那麼我會爲zerkms的答案投票。 ;) – shinkou
我也是,謝謝。 –
這個怎麼樣?
^\d{1,3}\.\d{1,3}(?:\.\d{1,6})?$
這將匹配Major.Minor和可選修訂版。 Major和Minor可以是1-3位數字(0-999),修訂可以是6位數字。
有效: 1.1 1.2.3 1.2.123456
無效: 1.2。 1.2.1234567 1.2。* 任何一個字母字符
這可能是一個老話題,但我發現了同樣的問題,有點找到簡單的解決方案,以便這可能幫助別人尋找一個答案。 這(\[0-9\]+\[\.\]?)+
將匹配這些:
7.1.1
12.1.1.3.12.442.5463.343.44.5
9
11.1.1
11.1.1
另外,如果有人想獲得唯一的數字(或者拆就點) 這將這樣的伎倆:
[0-9]+[\.]??
沒有完全測試,但這是人們:-)
(?<major>\d+)(?<minor>:\.\d+)?(?<build>:\.\d+)?(?<revision>:\.\d+)?
這就是我想要的,而你的舊的'\ d +(?:\。\ d +){1,2}'是好的,可以作爲'\ d +(?:\。\ d +){1,100}'作爲可接受的方法。 –
你的遭遇和我一樣的陷阱(即匹配'10.5.'):http://regexhero.net/tester/?id=f9dc4e62-06db-4a53-a60a-e3291cf33c29 – Mrchief
@Mrchief:不,你的舊(與'*')也匹配尾部'.'。雖然我的不是 – zerkms