正则表达式:数值范围

如何编写与0或000到180的数字范围匹配的正则表达式?



Qyouu
浏览 685回答 3
3回答

慕斯709654

最简单的方法是将字符串解析为数字,然后寻找该数字是否在适当的范围内。要使用纯正则表达式执行此操作,您需要识别模式并将其写出:^(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)$只是针对可能存在的每一个棘手的数字范围进行轮换。

慕娘9325324

我认为正则表达式不是正确的选择。您是否尝试过解析值?如果必须使用正则表达式,我将匹配以\d{1,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)$
打开App,查看更多内容
随时随地看视频慕课网APP