解决方案 »

  1.   

    为嘛是1-2或者5中的一个数字,不是1-255中的一个数字?
    正则中"[]"里面代表的都只有一个字符。这些说明看JDK API中java.util.regex.Pattern的说明楼主就清楚了
      

  2.   

    []:匹配一个中括号内的字符;
    [0-9]  [a-z]  [a-zA-Z]
      

  3.   

    String ip="199.168.4.5";
    String xy="(\\d|1\\d{0,2}|24\\d|25[0-5])";
    String chekString=xy+"\\."+xy+"\\."+xy+"\\."+xy;
    if (ip.matches(chekString))
    {
    System.out.println("是一个正确的ip");

    }
    else
    {
    System.out.println("不是一个正确的ip");
    }
    我是这样写的也成功了
      

  4.   

    String ip="199.168.4.5";
    String xy="(\\d|1\\d{0,2}|24\\d|25[0-5])";
    String chekString=xy+"\\."+xy+"\\."+xy+"\\."+xy;
    if (ip.matches(chekString))
    {
    System.out.println("是一个正确的ip");

    }
    else
    {
    System.out.println("不是一个正确的ip");
    }
    我是这样写的也成功了你这样写除了可以匹配出正确的IP外还会匹配出不正确的IP,比如当数字大于255时,比如是256,也是匹配成功的.匹配值为6.168.4.5.String ip = "256.168.4.5";
    String xy = "(\\d|1\\d{0,2}|24\\d|25[0-5])";
    String chekString = xy + "\\." + xy + "\\." + xy + "\\." + xy;
    Pattern pat = Pattern.compile(chekString);
    Matcher mat = pat.matcher(ip);
    while (mat.find()) {
    System.out.println(mat.group());
    }另外,先谢谢你的好意,转分就不用了,我回答问题不是为了分,共同学习,共同进步.