正则表达式

正则表达式用于判断句中,用来检查某一字符串是否满足某一格式。正则表达式是一些具有特殊意义字符的字符串,这些特殊字符称为正则表达式的元字符。

元字符 正则表达式中的写法 意义
. . 代表任意一个字符
\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{Print} \\p{Print} 可打印字符:[\p{Graph}\x20]
\p{Blank} \\p{Blank} 空格或制表符:[\t]
\p{Cntrl} \\p{Cntrl} 控制字符:[\x00-\x1F\x7F]

在正则表达式中可以使用方括号[]括起来若干个字符来表示一个元字符

str = “[abc]4” 则str字符串a4、b4、c4、都是和该正则表达式匹配的字符串
[^456]:代表4、5、6之外的字符
[a-r]:代表a~r中的任意一个英文字母
[a-zA-Z]:可以表示任意一个英文字母
[a-e[g-z]]:表示a~e或者g~z中的任何一个字母(并运算,就是在这两个范围中相连接起来的字符串)
[a-o&&[def]]:代表字母d、e、f(交运算,取交集)
[a-d&&[^bc]]:即为a、d(差运算,差集)

在正则表达式中,可以用限定修饰符来限定元字符出现的次数

“A*”代表A可以在字符串中出现0次或多次(所给定标准的次数)
限定修饰符 意义 示例
? 0次或1次 A?
* 0次或多次 A*
+ 一次或多次 A+
{n} 正好出现n次 A{2}
{n,} 至少出现n次 A{2,}
{n,m} 出现n~m次 A{2,6}
			//定义要匹配的E-mail地址的正则表达式
			String regex = "\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}";
			/*
			 * \\w  匹配任意字符
			 * +    表示可出现次数
			 * (\\.\\w{2,3})*    表示形如“.ab”或“.abc”格式的字符串可以出现0次或多次。
			 * \\.\\w{2,3}       表示结尾字符串格式判断,形如".cn"或“.com”
			 */
			String str_1 = "aaa@";
			String str_2 = "[email protected]";	//定义检查的两个字符串
			if(str_1.matches(regex)) {			//判断字符串变量是否与正则表达式匹配
				System.out.println(str_1 + "合法");
			}
			if(str_2.matches(regex)) {
				System.out.println(str_2 + "合法");
			}

运行结果:
在这里插入图片描述

你可能感兴趣的:(正则表达式)