首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配数大于指定十进制数的正则表达式

匹配数大于指定十进制数的正则表达式
EN

Stack Overflow用户
提问于 2013-08-05 07:59:06
回答 2查看 4.3K关注 0票数 4

我想匹配大于4.1的版本号。我为此构造了以下Regex

代码语言:javascript
复制
(([4-9]+\d*(\.((\*)|([2-9]+(\.((\*)|([0-9]+)))?)))?))

但它甚至匹配'4‘,不匹配'5.1','6.1’等。

如何构造这样一个正则表达式?请帮帮忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-05 08:15:21

试试这个:

代码语言:javascript
复制
([4-9]\.[2-9]\d*|[4-9]\.\d\d+|[5-9](\.\d+)?|\d\d+(\.\d+)?)

匹配4.1以上的所有版本

编辑:修正了没有点的版本

票数 4
EN

Stack Overflow用户

发布于 2013-08-05 08:08:26

你可以试试这个:

代码语言:javascript
复制
(4\.(1[0-9]*[1-9]|[2-9][0-9]*)|([5-9]|[1-9][0-9]+)(\.[0-9]+)?)

这将匹配:

  • 4.之后是:
代码语言:javascript
复制
- `1` followed by zero or more `0-9` and one or more `1-9`
- `2-9` followed by zero or more `0-9` 

  • 5-91-9后面跟着一个或多个0-9
  • 后面跟着一个可选的小数点和零或更多的0-9

根据使用方式的不同,您可能需要考虑在模式周围添加“开始”/“结束”锚,以便不允许其他字符:

代码语言:javascript
复制
^(4\.(1[0-9]*[1-9]|[2-9][0-9]*)|([5-9]|[1-9][0-9]+)(\.[0-9]+)?)$

您可以测试它的这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18053256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档