【黑马程序员】java正则表达式学习总结

本文介绍了Java中正则表达式的使用方法,包括Pattern和Matcher类的基本操作,并提供了电话号码、身份证号码及电子邮件地址的匹配实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------ <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ------

1.正则表达式是一种可以用于模式匹配和替换的规范,将某个字符模式与所搜索的字符串进行匹配。

通过正则表达式操作字符串比手工编码效率高,代码也比较清晰。

2.在java中。主要用java.util.regex处理正则表达式。
(1)Pattern类:正则表达式的编译表示形式。

Pattern pat=Pattern.compile(String  )

 (2)Matcher类:通过解释Pattern对character sequence执行匹配操作的引擎。

        Matcher mat=pt.matcher(Character )

(3)使用:
 a。    while(mat.find()){
System.out.println(mat.group());
}
 find()的操作与Iterator迭代器类似,mat.reset()可以重置find()

b。Boolean b=mat.matches();完全匹配返回true

c。String retStr=mat.replaceAll(String)替换匹配结果中的某些字符串并返回结构

d。String retStr=pat.split(String)
3.正则表达式语法:
正则表达式由常规字符,字符类(一组字符),统配符以及量词组成。
(1)常规字符根据自身进行匹配。如“xy”,匹配结果 “xy”
除了字母序列外,转义字符也属于常规字符。
(2)字符类是一组字符。通过在方括号之间放置字符,可以指定字符类。
a。[xyz]匹配x或y或z
b。[^xyz]   除x,y,z以外的字符。
c。[1-9]   指定数字1到9
(3)通配符是(.),可以匹配任何字符。
(4)量词决定表达式被匹配的次数
a。+:匹配一次或多次,“x+” 匹配 "x","xx","xxx"等
b。*:匹配零次或多次
c。?:匹配零次或一次
d。{n}重复那次,如 a{4}匹配4个a
{n,}重复n次或更多次

{n,m}重复n到m次


(5)常用的符号
\s 空格字符(空格,tab,\n,换页,回车)
\S费空格字符[^\s]
\d数字[0-9]
\D非数字字符
\w字母 
\W非单词的字符
^一行的开始
\b一个单词的边界 
\B一个非单词的边界

\G前一个匹配的结束


4.这种表达式的使用:
(1)匹配电话号码:
//正则表达式表示第一位是1,第二位为3或5,结尾为9位数字的一串数字
pat= Pattern.compile("^[1][3,5]+\\d{9}");   
mat = p.matcher("13812345678");    
boolean b = m.matches();   

(2)匹配身份证号码:
//正则表达式表示第一位是1,第二位为3或5,结尾为9位数字的一串数字
pat = Pattern.compile("\\d{15}|\\d{18}"); 
mat= p.matcher("020101198506020080");
boolean b= m.matches(); 

(3)匹配Email
pat= Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");    
mat = p.matcher("user@test.com");   
 boolean b = m.matches();

------ <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值