我想匹配大于4.1的版本号。我为此构造了以下Regex
(([4-9]+\d*(\.((\*)|([2-9]+(\.((\*)|([0-9]+)))?)))?))但它甚至匹配'4‘,不匹配'5.1','6.1’等。
如何构造这样一个正则表达式?请帮帮忙。
发布于 2013-08-05 08:15:21
试试这个:
([4-9]\.[2-9]\d*|[4-9]\.\d\d+|[5-9](\.\d+)?|\d\d+(\.\d+)?)匹配4.1以上的所有版本
编辑:修正了没有点的版本
发布于 2013-08-05 08:08:26
你可以试试这个:
(4\.(1[0-9]*[1-9]|[2-9][0-9]*)|([5-9]|[1-9][0-9]+)(\.[0-9]+)?)这将匹配:
4.之后是:- `1` followed by zero or more `0-9` and one or more `1-9`
- `2-9` followed by zero or more `0-9` 或
5-9或1-9后面跟着一个或多个0-90-9根据使用方式的不同,您可能需要考虑在模式周围添加“开始”/“结束”锚,以便不允许其他字符:
^(4\.(1[0-9]*[1-9]|[2-9][0-9]*)|([5-9]|[1-9][0-9]+)(\.[0-9]+)?)$您可以测试它的这里。
https://stackoverflow.com/questions/18053256
复制相似问题