我想匹配大于 4.1 的版本号。我为此构建了以下正则表达式
(([4-9]+\d*(\.((\*)|([2-9]+(\.((\*)|([0-9]+)))?)))?))
但它甚至匹配“4”,不匹配“5.1”、“6.1”等。
如何构造这样的正则表达式?请帮忙。
我想匹配大于 4.1 的版本号。我为此构建了以下正则表达式
(([4-9]+\d*(\.((\*)|([2-9]+(\.((\*)|([0-9]+)))?)))?))
但它甚至匹配“4”,不匹配“5.1”、“6.1”等。
如何构造这样的正则表达式?请帮忙。
尝试这个:
([4-9]\.[2-9]\d*|[4-9]\.\d\d+|[5-9](\.\d+)?|\d\d+(\.\d+)?)
匹配 4.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]+)?)$
你可以在这里测试它。