[英]Regular expression for version numbers
我想得到這樣的比賽:
3.1.0
10.5.1
0.5
這可能代表構建版本編號系統。
不匹配:
3.1.
我試過這個正則表達式:
[0-9]+\.[0-9]+
這只得到0.5
但不是10.5.1
。
那這個呢:
\d+(?:\.\d+)+
這個怎么樣?
^\d{1,3}\.\d{1,3}(?:\.\d{1,6})?$
這將匹配 Major.Minor 和可選修訂。 Major 和 Minor 可以是 1-3 位 (0-999),Revision 可以是 6 位。
有效:1.1 1.2.3 1.2.123456
無效:1 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+)?
嘗試這個:
[0-9]+\.[0-9]+(?:\.[0-9]+)?
我認為這應該更有意義:
^(?:0|[1-9][0-9]*)(?:\.(0|[1-9][0-9]*))*$
如果超過 1 位,每個數字分量都必須以非零開頭。
我推薦這個:
^\d+(?:\.\d+){2}$
{2} 確保 10.5 等版本不匹配
^ 和 $ 將“保護”版本的開頭和結尾,防止出現以下情況:
A10.5.1
10.5.
10.5.1A
(\d+\.){1,3}\d+
將匹配以下
快捷版(64 位)RTM 15.0.4223.1
15.0.4223.1
15.0.4
15.0
和不匹配以下
15
15.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.