就是用正则表达式匹配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();
}
}
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();
}
}
//你想要这样?? 匹配结果只为true ?
String regex= "\\d+\\.\\d+\\.\\d+\\.\\d+";
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;
}
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();
}
}
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();
}
}
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();
}}
/**
* 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();
}}
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}匹配!
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]))";看看我的老土方法
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();
}
}老土的简化版
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();
}
}
{
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);
}
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();
}}