正则表达式(电话号码 IP)

5 篇文章 0 订阅

正则表达式验证手机号码

String phone = "1?????????";
String regexString = "1[3-9][0-9]{9}";//正则表达式
boolean bo = phone.matches(regexString);

固定电话和手机示例:

public static void phonenum() {
		
	Scanner scan = new Scanner(System.in);
	String phoneString = "";
	String answer = "Y";
	Pattern ppPattern = Pattern.compile("0[1-9][0-9]{1,2}[-]?[1-9]\\d{6,7}|0[1-9][0-9]{1,2}\\s?[1-9][0-9]{6,7}|1[356789]\\d{9}");
	Matcher mth = null;
	boolean bo = false;
	do {
		bo = false;
		System.out.println("请输入电话号码:");
		phoneString = scan.nextLine();
//		phoneString = scan.next();
		mth = ppPattern.matcher(phoneString);
		if(mth.matches()) {
			System.out.println("电话号码正确!");
			System.out.println("您输入的电话号码是:"+phoneString);
		}else {
			System.out.println("电话号码错误");
			System.out.println("您输入的电话号码是:"+phoneString);
			System.out.println("是否重新输入?\"Y/N 或者 y/n?\"");
			answer = scan.nextLine();
//			System.out.println(answer);
			if(answer.equalsIgnoreCase("y")) {
				bo = true;
				}
			}
	}while(bo);
	System.out.println("成功!!!");
	scan.close();	
	}
	

 

正则表达式验证IP地址

IPv4地址由4组数字组成,每组数字之间以.分隔,每组数字的取值范围是0~255.

IPv4必须满足以下四条规则:

  1. 任何一个1位或者两位数字,即0~99;
  2. 任何一个以1开头的3位数字,即100~199;
  3. 任何一个以2开头,第二位数字在0~4之间的数字即200~249;
  4. 任何一个以25开头,第三位数字在0~5之间的三位数字,即250~255;
(?=(\b|\D))(((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))(?=(\b|\D))
(?=(\b|\D))(((25[0-5])|(2[0-4]\\d)|(1\\d{2})|([1-9]\\d)|([0-9])).){3}((25[0-5])|(2[0-4]\\d)|(1\\d{2})|([1-9]\\d)|([0-9]))(?=(\b|\D))

第二种写法

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

 

IPv6的128位地址通常写成8组,每4组为4个十六进制数。

比如:AD80:0000:0000:0000:ABAA:0000:00C2:0002 是一个合法的IPv6地址。这个地址比较长,看起来不方便也不易于书写。零压缩法可以用来缩减其长度。如果几个连续段位的值都是0,那么这些0就可以简单的一::来表示,上述地址就可以写成AD80::ABAA:0000:00C2:0002.这里需要注意的是只能简化连续的段位的0,其前后的0都要保留,比如AD80的最后的这个0,不能被简化。当然也可以在ABAA后面使用::,这样的话前面的12个0就不能压缩了。这个限制的目的是为了能准确的还原被压缩的0,不然就无法确定每个::代表多少个0.

^([\\da-fA-F]{1,4}:){7}([\\da-fA-F]{1,4})$

 

 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值