2[0-4]\d|25[0-5]|[01]?\d\d?
不希望直接告诉我说是小于255的数这个结果
是不太理解里面的逻辑

解决方案 »

  1.   

    2[0-4]\d   |   25[0-5]  |   [01]?                            \d        \d?
    2 0到4 0到9  或  25 0到5 或  0、1中的一个出现一次或者零次       0到9      0到9出现一次或者零次
      

  2.   

    (2[0-4]\d|25[0-5]|[01]?\d\d?)
    你不要丢了括号
    |是或的意思。就是说有3种情况
    第一种
    2[0-4]\d 
    2是个字符。
    [0-4]是字符组。在0-4内的字符都对。包含01234
    \d是数字 等价于[0-9]第二种
    25[0-5]就不解释了 同理第三种
    [01]?\d\d?
    这里有个?
    他以为着匹配之前的字符或字符组0到1次
    比如这个
    [01]?就是说可以匹配0或1,或者都不匹配
      

  3.   


    所以2[0-4]\d:匹配200-249
    |:或
    25[0-5]:匹配250-255
    |:或
    [01]?\d\d?:匹配001-199