首先感谢各个网友分享的资源,自己模仿写了个校验IP地址合法性的正则表达式。
最终得到了终极版的正则表达式
^((25[0-5]|2[0-4]\\d|[1]{1}\\d{1}\\d{1}|[1-9]{1}\\d{1}|\\d{1})($|(?!\\.$)\\.)){4}$
具体测试代码如下:
package regexTest;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestRegex {
public static void main(String[] args) {
ipRegex();
}
/**
* ip地址合法校验
* 1 25[0-5] 250-255
* 2 2[0-4]\\d 200-249
* 3 [1]{1}\\d{1}\\d{1} 100-199
* 4 [1-9]{1}\\d{1} 10-99
* 5 \\d{1} 0-9
* 6 ($|(?!\\.$)\\.) 结束 或者 不以.结束的加上.
* 7 (?!^0{1,3}(\\.0{1,3}){3}$) 排除 0.0.0.0 (?!^0{1,3}(\\.0{1,3}){3}$)^((25[0-5]|2[0-4]\\d|[1]{1}\\d{1}\\d{1}|[1-9]{1}\\d{1}|\\d{1})($|(?!\\.$)\\.)){4}$
* 8 (?!^255(\\.255){3}$) 排除 255.255.255.255 (?!^255(\\.255){3}$)^((25[0-5]|2[0-4]\\d|[1]{1}\\d{1}\\d{1}|[1-9]{1}\\d{1}|\\d{1})($|(?!\\.$)\\.)){4}$
*/
public static void ipRegex() {
Pattern p = Pattern.compile("^((25[0-5]|2[0-4]\\d|[1]{1}\\d{1}\\d{1}|[1-9]{1}\\d{1}|\\d{1})($|(?!\\.$)\\.)){4}$");
Matcher m = p.matcher("254.249.199.9");
boolean b = m.matches();
System.out.println(b);
}
}
最感谢的是这位兄台的分享!引用了您的东西。
点击打开链接
作者:
Zjmainstay
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息
也希望各位多提意见!