ste*_*ell 34
我不认为正则表达式是正确的选择.你试过解析这个值吗?如果你必须使用正则表达式,我会匹配\d{1,3}解析字符串然后验证代码中的数字.
Joe*_*oey 29
最简单的方法是将字符串解析为数字,并查找数字在适当的范围内.
要使用纯正则表达式执行此操作,您需要识别模式并将其写出:
^(0?[0-9]{1,2}|1[0-7][0-9]|180)$
Run Code Online (Sandbox Code Playgroud)
这有三种选择:一种用于单位和两位数字(允许前导零),其中每个数字可以是0到9之间的任何数字.另一个指定允许三位数的每个数字的数字范围数.在这种情况下,这意味着第一个数字需要为1,第二个数字需要在0到7之间,最后一个数字可以是任何数字.第三种选择仅适用于数字180,它与其他地方的模式不相符.
一种更直接的方法可能是
^(0{0,2}[0-9]|0?[1-9][0-9]|1[0-7][0-9]|180)$
Run Code Online (Sandbox Code Playgroud)
这可能只是为每个棘手的数值范围交替.
小智 14
最近发布的rgxg命令行工具生成与特定数字范围匹配的正则表达式:
$ rgxg range -Z 0 180
(180|1[0-7][0-9]|0?[0-9]{1,2})
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请访问http://rgxg.sf.net.