如何匹配1.1.7以后的版本名? (或我想要的任何版本)
How to match version name later than 1.1.7? (or any version that I want)
我正在使用 Firebase Remote Config 并且在我当前的设置下,使配置仅发布给具有正确版本的用户的唯一方法是使用正则表达式。
我正在寻找匹配 A.B.C
之后发布的任何版本的正则表达式
因此,如果新版本是 x.y.z,则必须满足以下条件才能匹配:
(x > A) 或 {(x = A) 和 [(y > B) 或 ((y = B) 和 (z > C))]}
实数示例:
匹配任何等于或高于 1.1.7 的版本:
匹配:
1.1.7
1.1.8
1.1.69
1.2.0
1.10.0
2.0.0
不匹配:
1.1.6
1.0.34
0.5.0
0.77.0
我试过这个正则表达式:^(([2-9]|[0-9]{2,}).*|1\.(([0-9]{2,}).*|[1-9]\.([0-9]{3,}|[0-9]{2,}|[7-9])))
但它不匹配 1.2.0
您可以试试这个正则表达式:
^([2-9]|1\d|1\.([2-9]|1\d|1\.([7-9]|\d\d)))
演示 here
你可以使用
^(?:1\.(?:1\.(?:[789]|[1-9]\d+)|(?:[1-9]\d+|[2-9])\.\d+)|(?:[1-9]\d+|[2-9])\.\d+\.\d+)$
模式匹配:
^
字符串开头
(?:
非捕获组
1\.
匹配 1.
(?:
非捕获组
1\.
匹配 1.
(?:[789]|[1-9]\d+)
匹配 7
8
9
或 10+
|
或
(?:[1-9]\d+|[2-9])
10+ 或 2-9
\.\d+
匹配.
和1+个数字0-9
)
关闭非捕获组
|
或
(?:
非捕获组
[1-9]\d+
10+
|
或
[2-9]
匹配 2-9
)
关闭非捕获组
\.\d+\.\d+
匹配.
1+位.
1+位
)
关闭外部非捕获组
$
字符串结束
我正在使用 Firebase Remote Config 并且在我当前的设置下,使配置仅发布给具有正确版本的用户的唯一方法是使用正则表达式。
我正在寻找匹配 A.B.C
之后发布的任何版本的正则表达式因此,如果新版本是 x.y.z,则必须满足以下条件才能匹配:
(x > A) 或 {(x = A) 和 [(y > B) 或 ((y = B) 和 (z > C))]}
实数示例:
匹配任何等于或高于 1.1.7 的版本:
匹配:
1.1.7
1.1.8
1.1.69
1.2.0
1.10.0
2.0.0
不匹配:
1.1.6
1.0.34
0.5.0
0.77.0
我试过这个正则表达式:^(([2-9]|[0-9]{2,}).*|1\.(([0-9]{2,}).*|[1-9]\.([0-9]{3,}|[0-9]{2,}|[7-9])))
但它不匹配 1.2.0
您可以试试这个正则表达式:
^([2-9]|1\d|1\.([2-9]|1\d|1\.([7-9]|\d\d)))
演示 here
你可以使用
^(?:1\.(?:1\.(?:[789]|[1-9]\d+)|(?:[1-9]\d+|[2-9])\.\d+)|(?:[1-9]\d+|[2-9])\.\d+\.\d+)$
模式匹配:
^
字符串开头(?:
非捕获组1\.
匹配1.
(?:
非捕获组1\.
匹配1.
(?:[789]|[1-9]\d+)
匹配7
8
9
或 10+|
或(?:[1-9]\d+|[2-9])
10+ 或 2-9\.\d+
匹配.
和1+个数字0-9
)
关闭非捕获组|
或(?:
非捕获组[1-9]\d+
10+|
或[2-9]
匹配 2-9
)
关闭非捕获组\.\d+\.\d+
匹配.
1+位.
1+位
)
关闭外部非捕获组$
字符串结束