String pattern = "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}";
                        String value = "192.168.4.35"                        Pattern p = Pattern.compile(pattern);
                        Matcher m = p.matcher(value);
                        
这样能match,但
                        String pattern = "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}";
                        String value = "asdad 192.168.4.35 asdada"                        Pattern p = Pattern.compile(pattern);
                        Matcher m = p.matcher(value);不match?

解决方案 »

  1.   

    var sIPAddress = form.appIp.value;
            var exp=/^(\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])$/;
            var reg = sIPAddress.match(exp);
            var ErrMsg="你输入的是一个非法的IP地址段!\nIP段为::xxx.xxx.xxx.xxx(xxx为0-255)!";  
      

  2.   

    我的意思:只要字符串里面包含有IP,都显示为Match?有谁做过类似的?
      

  3.   

    String pattern = "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"; 
    String value = "asdad 192.168.4.35 asdada";
    Pattern p = Pattern.compile(pattern); 
    Matcher m = p.matcher(value);
    if(m.find()) {
       System.out.println("success.");
    }
      

  4.   

    (".*?\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}.*?"))
      

  5.   

    楼上说的是不是用这个。
    Pattern = Pattern.compile(".*?((25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d).*?");
      

  6.   

    楼上的,我测试了你的,还是不行
    asdad   192.168.4.938asdada 居然说可以匹配
      

  7.   

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

  8.   

    /^(([01]?[\d]{1,2})|(2[0-4][\d])|(25[0-5]))(\.(([01]?[\d]{1,2})|(2[0-4][\d])|(25[0-5]))){3}$/跟上面很像。
      

  9.   

    这个绝对没有问题:
    ^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$