我希望匹配的版本号大于4.1。 我为此构建了以下正则表达式
(([4-9]+\d*(\.((\*)|([2-9]+(\.((\*)|([0-9]+)))?)))?))
但它甚至匹配'4'并且不匹配'5.1','6.1'等。
如何构建这样的正则表达式?请帮忙。
答案 0 :(得分:3)
试试这个:
([4-9]\.[2-9]\d*|[4-9]\.\d\d+|[5-9](\.\d+)?|\d\d+(\.\d+)?)
匹配4.1以上的所有版本
编辑:修复了没有点的版本
答案 1 :(得分:1)
你可以试试这个:
(4\.(1[0-9]*[1-9]|[2-9][0-9]*)|([5-9]|[1-9][0-9]+)(\.[0-9]+)?)
这将匹配:
4.
后跟:
1
后跟零个或多个0-9
以及一个或多个1-9
2-9
后跟零个或多个0-9
或强>
5-9
或1-9
后跟一个或多个0-9
0-9
根据将如何使用它,您可能需要考虑在模式周围添加开始/结束锚点,以便不允许其他字符:
^(4\.(1[0-9]*[1-9]|[2-9][0-9]*)|([5-9]|[1-9][0-9]+)(\.[0-9]+)?)$
您可以对其进行测试here。