就是用正则表达式匹配IP 地址:
  import java.util.regex.Pattern;
public class Demo { public static void test()
{  
                  String regex="(\\d|[0-9]{2}|[1-2]{2)[0-5])\\.{3}(\\d|[0-9]{2}|[1-2]{2)[0-5])";

String value="192.168.1.1";
boolean flag=Pattern.matches(regex, value);
    System.out.println(flag);


}

public static void main(String[] args)
{
test();
}



}

解决方案 »

  1.   


    //你想要这样?? 匹配结果只为true ?
    String regex= "\\d+\\.\\d+\\.\\d+\\.\\d+";
      

  2.   

    String regex="(([01]?[\\d]{1,2})|(2[0-4][\\d])|(25[0-5]))(\\.(([01]?[\\d]{1,2})|(2[0-4][\\d])|(25[0-5]))){3}";
      

  3.   

    ^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])(\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){3}$
      

  4.   

    http://book.51cto.com/art/200801/64656.htm
      

  5.   

    或者不用正则 public static boolean testIP(String s){
    if(s == null || s.length() < 7 || s.length() > 15){
    return false;
    }
    String[] ss=s.split("\\.");
    if(ss.length != 4){
    return false;
    }
    for(String t:ss){
    try{
    int i=Integer.parseInt(t);
    if(i<0 || i>255){
    return false;
    }
    }
    catch(Exception ex){
    return false;
    }
    }
    return true;
    }
      

  6.   

    try...String regex = "^(?:(?:[1-9]?[0-9]|1[0-9]{2}|2(?:[0-4][0-9]|5[0-5]))\\.){3}(?:[1-9]?[0-9]|1[0-9]{2}|2(?:[0-4][0-9]|5[0-5]))$";
      

  7.   

    import java.util.regex.Pattern;
    public class Demo {    public static void test()
        {  
           String regex="^(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$";
            
            String value="255.168.1.1";
            boolean flag=Pattern.matches(regex, value);
            System.out.println(flag);
            
            
        }
        
        public static void main(String[] args)
        {
            test();
        }
    }
      

  8.   

    import java.util.regex.Pattern;
    public class Demo {  public static void test()
      {   
      String regex="^(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$";
        
      String value="255.168.1.1";
      boolean flag=Pattern.matches(regex, value);
      System.out.println(flag);
        
        
      }
        
      public static void main(String[] args)
      {
      test();
      }
    }
      

  9.   


    import java.util.regex.Pattern;public class Demo { public static void test() {
    /**
     * ip地址的每一位都是0-255范围内的,但是分为以下几类:
     * 1.一位数:0-9,用”[0-9]“匹配就行了
     * 2.两位数:10-99,用”[1-9][0-9]“匹配就行了
     * 3.三位数,这个分两种情况,
     *   (1)一种是100-199,用”1[0-9]{2}“匹配;
     *   (2)另一种是200-255,用”25[0-5]“匹配
     *  最后把以上的四种情况组合起来,就可以匹配一个数字了,
     *  然后加上.,前面的三部分规则都相同的,是数字加.,所以就用
     *  同样的规则,但是要注意把前面所有(数字加分隔符点)的放在一个分组里面,
     *  后面指定出现的次数,最后再加上前面的匹配数字的部分就行了
     */

    String regex = "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$"; String value = "192.168.1.1";
    boolean flag = Pattern.matches(regex, value);
    System.out.println(flag); } public static void main(String[] args) {
    test();
    }}
      

  10.   

    上面的有点问题,三位的分三种情况。import java.util.regex.Pattern;public class Demo { public static void test() {
    /**
     * ip地址的每一位都是0-255范围内的,但是分为以下几类:
     * 1.一位数:0-9,用”[0-9]“匹配就行了
     * 2.两位数:10-99,用”[1-9][0-9]“匹配就行了
     * 3.三位数,这个分三种情况,
     *   (1)100-199,用”1[0-9]{2}“匹配;
     *   (2)200-249,用”2[0-4][0-9]“匹配
     *   (3)250-255,用”25[0-5]“匹配
     *  最后把以上的五种情况组合起来,就可以匹配一个数字了,
     *  然后加上.,前面的三部分规则都相同的,是数字加.,所以就用
     *  同样的规则,但是要注意把前面所有(数字加分隔符点)的放在一个分组里面,
     *  后面指定出现的次数,最后再加上前面的匹配数字的部分就行了
     */

    String regex = "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$"; String value = "192.168.1.1";
    boolean flag = Pattern.matches(regex, value);
    System.out.println(flag); } public static void main(String[] args) {
    test();
    }}
      

  11.   

    试试这个吧:String regex = "((25[0-5])|(2[0-4]\\d)|(1\\d{2})|([1-9]?\\d))(\\.((25[0-5])|(2[0-4]\\d)|(1\\d{2})|([1-9]?\\d))){3}";
      

  12.   


    String regex = "((\\d{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}(\\d{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])";其实上面的情况,可以简化一下。把一位和两位的情况和在一起。用\\d{1,2}匹配!
      

  13.   


    String regex = "(([1-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-5][0-5])\\.([0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-5][0-5])\\.([0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-5][0-5])\\.([0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-5][0-5]))";看看我的老土方法
      

  14.   


    public class Demo {    public static void test()
        {  
                      String regex="((([1-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-5][0-5])\\.){3}([0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-5][0-5]))";
            
            String value="255.255.255.1";
            boolean flag=Pattern.matches(regex, value);
            System.out.println(flag);
            
            
        }
        
        public static void main(String[] args)
        {
            test();
        }
        
        
            
    }老土的简化版
      

  15.   

    前面的简化版对255.0.0.0 出错。下面这个OK
    public class Demo {    public static void test()
        {  
                      String regex="((([1-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-5][0-5])\\.)(([0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-5][0-5])\\.){2}([0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-5][0-5]))";
            
            String value="255.255.0.0";
            boolean flag=Pattern.matches(regex, value);
            System.out.println(flag);
            
            
        }
        
        public static void main(String[] args)
        {
            test();
        }
        
        
            
    }
      

  16.   

    借用hudie1234567 的做了一点修改public static void main(String[] args)
        {  
            String  regex = "((1??\\d{1,2}|2[0-4][0-9]|25[0-5])\\.){3}(1??\\d{1,2}|2[0-4][0-9]|25[0-5])";
            String value = "255.168.1.1";
            boolean flag = Pattern.matches(regex, value);
            System.out.println(flag);
            
        }
      

  17.   

    实在Sorry,下面这个应该可以。请帮忙验证
    public class Demo {  public static void test()
        {  
                      String regex="((([1-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-4][0-9]|25[0-5])\\.)(([0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-4][0-9]|25[0-5])\\.){2}([0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-4][0-9]|25[0-5]))";
            
            String value="239.255.255.249";
            boolean flag=Pattern.matches(regex, value);
            System.out.println(flag);
            
            
        }
        
        public static void main(String[] args)
        {
            test();
        }}