【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 = "[email protected]";
		String s2 = "[email protected]";
		String s3 = "[email protected]";
		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的意思是说:
可用作标识符的字符+@+可用作标识符的字符+不出现或多次出现的“.+出现两到三次的可用作标识符的字符”+.+出现两到三次的可作为标识符的字符
输出结果:

[email protected] 合法
[email protected] 合法

你可能感兴趣的:(【Java学习记录】)