/[0-9]+/
也会匹配超出范围的内容,例如999
如何编写与0~255
之间的数字完全匹配的正则表达式?
答案 0 :(得分:16)
我愿意:
$n >= 0 && $n <= 255
正则表达式很好,但在这种情况下可以避免使用它们。
答案 1 :(得分:4)
看看here:
000..255: ^([01][0-9][0-9]|2[0-4][0-9]|25[0-5])$
0 or 000..255: ^([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])$
答案 2 :(得分:3)
最简单的解决方案是获取数字,转换为整数,然后测试它的值是&lt; = 255.但如果你真的,真的 想要一个正则表达式,然后这将工作:
^([0-9]{1,2}|1[0-9]{1,2}|2[0-4][0-9]|25[0-5])$
编辑已修复,因为它无法在所有情况下都有效。说实话,这就是为什么你应该将字符串解析成一个整数并测试整数值是&lt; = 255。
答案 3 :(得分:2)
第一组匹配0-99,第二组100-199,第三组200-249,第四组250-255
/[0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5]/
答案 4 :(得分:1)
实际上,您应该匹配0-999并在之后对值进行标准化,但是......
/(25[0-5])|(2[0-4][0-9])|(1[0-9][0-9])|([0-9][0-9])|([0-9]))/