如何使用PHP中的正则表达式匹配0到255之间的数字?

时间:2010-05-06 07:34:40

标签: php regex

/[0-9]+/也会匹配超出范围的内容,例如999

如何编写与0~255之间的数字完全匹配的正则表达式?

5 个答案:

答案 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]))/