【Java学习日记】#3 正则表达式

正则表达式

前面有遇到,贴了个百度百科,发现还是得熟悉一下
正则表达式:含有一些具有特殊意义字符的字符串,这些特殊字符成为正则表达式中的元字符
常被用在判断语句中,用来检查某一字符是否满足某一格式。

元字符正则表达式中的写法意义
..代表任意一个字符
\d\\d代表0~9的任何一个数字
\D\\D代表任何一个非数字字符
\s\\s代表空白字符,如’\t’、’\n’
\S\\S代表非空白字符
\w\\w代表可用作标识符的字符,但不包括“$”
\W\\W代表不可用于标识符的字符
\p{Lower}\\p{Lower}代表小写字母a~z
\p{Upper}\\p{Upper}代表大写字母A~Z
\p{ASCII}\\p{ASCII}ASCII字符
\p{Alpha}\\p{Alpha}字母字符
\p{Digit}\\p{Digit}十进制数字,即0~9
\p{Alnum}\\p{Alnum}数字或字母字符
\p{Punct}\\p{Punct}标点符号:!"#$%&’()*+,-./:;<=>?@[]^_{
\p{Graph}\\p{Graph}可见字符:[\p{Alnum}\p{Punct}]
\p{Blank}\\p{Blank}空格或制表符:[\t]
\p{Cntrl}\\p{Cntrl}控制字符:[\x00-\x1F\x7F]

正则表达式中可以使用方括号括起若干个字符来表示一个元字符,该字符可代表方括号中的任何一个字符。
例如:reg="[abc]4"
则a4、b4、c4都是reg匹配的字符

限定修饰符
正则表达式钟允许使用限定修饰符来限定元字符出现的次数。

限定修饰符意义示例
?0次或1次A?
*0次或多次A*
+1次或多次A+
{n}正好出现n次A{2}
{n,}至少出现n次A{3,}
{n,m}出现n~m次A{2,6}
		String regex = "\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}";
		String s1 = "1112@11ffyu.com";
		String s2 = "1112@11ffyu.dfggg.com";
		String s3 = "1112@11ffyu.dfg.com";
		if(s1.matches(regex)) {
			System.out.println(s1+" 合法");
		}
		if(s2.matches(regex)) {
			System.out.println(s2+" 合法");
		}
		if(s3.matches(regex)) {
			System.out.println(s3+" 合法");
		}

加号分开的三部分:
\w
@\w
(\.\w{2,3})*\.\w{2,3}

前两个不作赘述

第三个可以这样拆解:
(\.\w{2,3})*
\.\w{2,3}

第一部分:
\\.表示"." \\w表示可用作标识符的字符 {2,3}表示该可用作标识符的字符可出现2~3次 括号外的*表示括号内的整体不出现或者出现多次,再连接后面的部分,与括号内相同。

所以,regex的意思是说:
可用作标识符的字符+@+可用作标识符的字符+不出现或多次出现的“.+出现两到三次的可用作标识符的字符”+.+出现两到三次的可作为标识符的字符
输出结果:

1112@11ffyu.com 合法
1112@11ffyu.dfg.com 合法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值