如何编写一个与0或000到180之间的数字范围匹配的正则表达式?
最简单的方法是将字符串解析为数字,然后查找数字是否在正确的范围内。
要使用纯regex来做到这一点,你需要识别模式并写出来:
^(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)$
它只是交替为每个棘手的数值范围可能有。