为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式:数值范围

正则表达式:数值范围

Qyouu 2019-12-04 10:41:56
如何编写与0或000到180的数字范围匹配的正则表达式?
查看完整描述

3 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

最简单的方法是将字符串解析为数字,然后寻找该数字是否在适当的范围内。


要使用纯正则表达式执行此操作,您需要识别模式并将其写出:


^(0?[0-9]{1,2}|1[0-7][0-9]|180)$

这有三种选择:一种用于一位数字和两位数字(允许前导零),其中每个数字可以是0到9之间的任何数字。另一种用于指定三位数字中的每个数字允许的数字范围数。在这种情况下,这意味着第一个数字需要为1,第二个数字在0到7之间,最后一个可以为任意数字。第三种选择是针对数字180,它与其他位置的模式不太匹配。


更直接的方法可能是


^(0{0,2}[0-9]|0?[1-9][0-9]|1[0-7][0-9]|180)$

只是针对可能存在的每一个棘手的数字范围进行轮换。


查看完整回答
反对 回复 2019-12-04
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

我认为正则表达式不是正确的选择。您是否尝试过解析值?如果必须使用正则表达式,我将匹配以\d{1,3}解析字符串,然后验证代码中的数字。


查看完整回答
反对 回复 2019-12-04
?
狐的传说

TA贡献1804条经验 获得超3个赞

我的两分钱:


发布此问题答案的任何人都应至少使用以下输入来测试其正则表达式:


应该匹配:0、00、000、5、05、005、95、095、180


不应该匹配:0000、0095、181、190


我认为约翰尼斯·罗素(JohannesRössel)所写的东西与您将获得的一样好:


^(0?[0-9]{1,2}|1[0-7][0-9]|180)$


查看完整回答
反对 回复 2019-12-04
  • 3 回答
  • 0 关注
  • 675 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信