加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

regex – 任何大于0的数字的正则表达式?

发布时间:2020-12-14 06:44:52 所属栏目:百科 来源:网络整理
导读:对MVC中的模型应用验证,并且想使用Regex。 希望验证我的模型上的ID在提交时大于0。 我不熟悉Regex …有人可以帮助我吗? 谢谢 我不知道MVC如何相关,但如果你的ID是一个整数,这个BRE应该做: ^[1-9][0-9]*$ 如果你想匹配实数(浮点数)而不是整数,你需要处
对MVC中的模型应用验证,并且想使用Regex。

希望验证我的模型上的ID在提交时大于0。

我不熟悉Regex …有人可以帮助我吗?

谢谢

我不知道MVC如何相关,但如果你的ID是一个整数,这个BRE应该做:
^[1-9][0-9]*$

如果你想匹配实数(浮点数)而不是整数,你需要处理上面的情况,正常的十进制数(例如2.5或3.3),你的模式在0和1(即0.25)之间的情况,如好的情况下,你的模式的小数部分为0.(即2.0)。虽然我们在它,我们将添加对整数(即005)前导零的支持:

^(0*[1-9][0-9]*(.[0-9]+)?|0+.[0-9]*[1-9][0-9]*)$

注意,第二个是扩展RE。同样的事情可以在基本RE中表示,但是几乎所有的东西都理解ERE这些天。让我们把表达式分解成更容易消化的部分。

^(

插入符在行的开头匹配null,因此在你的正则表达式之前使用插入符将它锚定到行的开头。开始括号是因为or-bar,在下面。稍后再谈。

0*[1-9][0-9]*(.[0-9]+)?

这可以匹配任何整数或任何大于1的浮点数。因此我们的2.0将匹配,但0.25不会匹配。开始处的0 *处理前导零,因此005 == 5。

|

在此上下文中,管道字符是“或 – 条”。为了评估该表达式,它具有比其他任何事物更高的优先级,并且有效地将两个正则表达式连接在一起。圆括号用于分隔由或条形分隔的多个表达式。

第二部分:

0+.[0-9]*[1-9][0-9]*

这将匹配以一个或多个0字符开头的任何数字(用*替换以匹配零或多个零,即.25),后跟一个句点,后跟一个包含至少一个非0的数字字符串。所以这匹配0以上和1以下的一切。

)$

最后,我们关闭括号并将正则表达式锚定到带有美元符号的行的末尾,正如插入符锚定到行的开头。

当然,如果你让你的编程语言评价一些数字,而不是试图匹配一个正则表达式,你会节省头痛和CPU。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读