正则表达式

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

元字符正则表达式中的写法意义
..代表任意一个字符
\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 = "abababc@fx.123";	//定义检查的两个字符串
			if(str_1.matches(regex)) {			//判断字符串变量是否与正则表达式匹配
				System.out.println(str_1 + "合法");
			}
			if(str_2.matches(regex)) {
				System.out.println(str_2 + "合法");
			}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值