【问题标题】:How do I match number from 0 to 255 using regex in PHP?如何在 PHP 中使用正则表达式匹配从 0 到 255 的数字?
【发布时间】:2010-05-06 07:34:40
【问题描述】:

/[0-9]+/ 也会匹配那些超出范围的,比如999

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

【问题讨论】:

标签: php regex


【解决方案1】:

我愿意:

$n >= 0 && $n <= 255

正则表达式很好,但在这种情况下可以避免使用。

【讨论】:

    【解决方案2】:

    看看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])$
    

    【讨论】:

      【解决方案3】:

      最简单的解决方案是获取数字,转换为整数,然后测试它的值是否为 真的,真的想要一个正则表达式这样做,那么这将起作用:

      ^([0-9]{1,2}|1[0-9]{1,2}|2[0-4][0-9]|25[0-5])$
      

      编辑已修复,因为它并非在所有情况下都有效。老实说,这就是为什么您应该将字符串解析为整数并测试整数值是否为

      【讨论】:

      • 匹配 150 到 199 btw
      【解决方案4】:

      第一组匹配 0-99,第二组匹配 100-199,第三组匹配 200-249,第四组匹配 250-255

      /[0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5]/
      

      【讨论】:

        【解决方案5】:

        实际上,您应该只匹配 0-999 并在之后对值进行归一化,但是...

        /(25[0-5])|(2[0-4][0-9])|(1[0-9][0-9])|([0-9][0-9])|([0-9]))/
        

        【讨论】:

        • 或者用 /(\d+)/ 捕获任何整数
        猜你喜欢
        • 2022-01-25
        • 2013-02-18
        • 2011-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-03
        • 2020-08-06
        相关资源
        最近更新 更多