Java正则表达式

Java正则表达式
1、Java正则表达式
Java正则表达式主要用到Matcher、Pattern两个类,Pattern对应正则表达式,一个Pattern与一个String对象关联,生成一个Matcher,它对应Pattern在String中的一次匹配;
调用Matcher对象的find()方法,Matcher对象就会更新为下一次匹配的匹配信息
Pattern是Java语言中的正则表达式对象。
要使用正则表达式,首先必须从字符串“编译”出Pattern对象,这需要用到Pattern.compile(String regex)
正则表达式的语法可以参考https://www.w3cschool.cn/java/java-regular-expressions.html
2、正则表达式应用:
(1)验证邮箱
代码
while(true) {
Scanner input=new Scanner(System.in);
// 要验证的字符串
String str = input.nextLine();
// 邮箱验证规则
String regEx = “[a-zA-Z_]{1,}[0-9]{0,}@(([a-zA-z0-9]-*){1,}\.){1,3}[a-zA-z\-]{1,}”;
// 编译正则表达式
Pattern pattern = Pattern.compile(regEx);
// 忽略大小写的写法
// Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(str);
// 字符串是否与正则表达式相匹配
boolean rs = matcher.matches();
if(rs)
System.out.println(str+“格式正确”);
else
System.out.println(“格式不正确”);
}
输出
在这里插入图片描述

pattern.matcher(str)将str转化为matcher对象
boolean rs = matcher.matches();用于判断字符串是否匹配
可以看出:虽然代码不够完善,但是能基本的完成@和.的判断功能。正则表达式相比其他方法来说,更加快捷高效
(2)提取字符串:
String str=“我的QQ是:456456 我的电话是:0532214 我的邮箱是:aaa123@aaa.com”;
//正则表达式匹配数字
Pattern p=Pattern.compile("\d+");
//获得Matcher对象
Matcher m=p.matcher(str);
//输出原字符串
System.out.println(“原字符串为:”+str);
//字符串匹配到时的操作
while(m.find()) {
//Matcher.group()方法返回匹配到的子字符串
System.out.println(“字符串中提取的数字为:”+m.group());
//Matcher.start()方法返回寻找到的字符串开始位置
System.out.print(“start:”+m.start());
//Matcher.end()方法返回寻找到的字符串结束位置
System.out.println(" end:"+m.end());
输出:
在这里插入图片描述

通常来说提取字符串中指定的字符(数字、字母、特殊符号等),并得到其在字符串中的具体位置不是一件容易的事,但使用正则表达式运用Pattern和matcher类就可以较为简便的实现这个功能。

3、正则表达式理解:
语法
正则表达式的语法较为复杂各种符号参杂,不同编程语言的正则表达式语法也不完全相同,增加了正则表达式的学习难度。

应用场景
正则表达式的应用十分广泛:如用户登录注册时密码、邮箱校验;统计分析一篇文章的词频;批量修改文档中某些相同或相似的参数或值

观点
介于正则表达式本身语法较为复杂,通常一个正则表达式语句往往夹杂许多特殊符号,可读性较差。而且比较容易写错。个人观点与其花费精力学习,不如正则表达式可以看作是一种工具,需要使用时只要查询对应的语句即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值