正则表达式

Who is 正则?

正则表达式是一个符合一定规则的字符序列。String对象调用public boolen matches(String regex)方法可以判断当前String对象的字符序列是否符合regex指定的正则表达式匹配。

元字符

元字符意义
.代表任意一个字符
^匹配输入字符串的开始位置
$匹配输入字符串的结束位置
\d代表0~9中任意一个数字
\D代表任意一个非数字字符
\s代表空格类字符,'\t','\n','\x0B','\f','\r'
\S代表非空格类字符
\w代表可用于标识符的字符(a-zA-Z_0-9)
\W代表不能用于标识符的字符
\p{Lower}小写字母
\p{Upper}大写字母
\p{ASCII}ASCII字符
\p{Alpha}字母
\p{Dight}数字字符[0-9]
\p{Alnum}字母或数字
\p{Punct}标点符号: !"#$%^&*()@[]|\ /{}~
\p{Graph}可视字符:\p{Alnum}\p{Punct}
\p{Print}可打印字符
\p{Blank}空格或者制表符[\t]
\p{Cntrl}控制字符

字符序列

[abc]a,b,c中的任何一个
[^abc]除了a,b,c以外的任何字符
[a-zA-Z]英文字母,忽略大小写
[a-d]a到d中的任意一个
[a-d[m-p]]a~d并m~p中的任意一个(并)
[a-z&&[def]]d,e,f,中 的任意一个(交)
[a-f&&[^bc]]a,d,e,f(差)
[.]或\56.

限定符

带限定修饰符的模式意义
X?X出现0次或1次
X*X出现0次或多次
X+X出现1次或多次
X{n}X出现n次
X{n,}X至少出现n次
X{n,m}X出现n次至m次
X|YX或Y
XYX的后缀为Y
public class One
{
	public void idRegex(String id)
	{
		String regex="((\\d{18}$)|(^\\d{17}(\\d{1}|[Xx])))";
		if(id.matches(regex))
			System.out.println("身份证格式正确");
		else
			System.out.println("身份证格式错误");
	}

	public void phoneRegex(String phone)
	{
		String regex="(1[358]\\d{9})";
		if(phone.matches(regex))
			System.out.println("手机号码格式正确");
		else
			System.out.println("手机号码格式错误");
	}
	
	public void mailRegex(String mail)
	{
		String regex="(\\w+@\\w+\56{1}com)";
		if(mail.matches(regex))
			System.out.println("邮箱格式正确");
		else
			System.out.println("邮箱格式错误");
	}
	
	public static void main(String[] args)
	{
		System.out.println("输入----------");
		Scanner in=new Scanner(System.in);
		String target=in.nextLine();
		One t=new One();
//		t.idRegex(target);
//		t.phoneRegex(target);
		t.mailRegex(target);
		
		
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值