【java基础】正则表达式

在了解正则表达式之前,先介绍一下组的概念。
正则表达式中,用()来表示组,在提取时,就可以通过.group(n)来提取组的值。
比如String str =abc\bcab
正则表达式是:(.*)(\\bc)(.*),等于把字符串str分成了三个部分,分别是abc  \bc   ab。那么可以得到:
gourp(0)=abc\bcab
gourp(1)=abc
gourp(2)=\bc
gourp(3)=ab

注意:其中\\,第一个\表示转义符,因为str字符串中有一个\,我们需要对这个\进行转义才可以匹配得到,所以要加一个转义符\放在前面。

元字符

元字符描述
\转义字符,对后面紧跟的一个字符进行转义
\d[0-9]的数字
\n换行符
\r回车
\s任何不可见字符
\<以后面紧跟的字符开始
\>以前面紧跟的字符结束
|或运算
.匹配除了\r和\n之外的任何字符
*匹配0次或任意次
+匹配1次或多次
?匹配0次或1次
{n}匹配前面的表达式n次
[a-z]匹配a-z任意小写字符

正则表达式的使用

String str="acccbefccc";
Pattern p=Pattern.conpile("c*");  //定义正则表达式
Matcher m=p.matcher(str);//要匹配的表达式

boolean result=m.matches();//将整个表达式与字符串匹配,正则表达式c*代表的是任意个c的字符串,str字符串不止有c还有abef等字符,所以matches()的结果是false;
boolean result=m.find();//部分匹配,在str中只要找到了任意个c就可以匹配成功,所以find()的结果是true;


//一般正则表达式提取的结果可能有很多个,所以我们会采用数组的形式来保存提取到的结果
List<String> result = new ArrayList<>();
Pattern p=Pattern.conpile("c*");  //定义正则表达式
Matcher m=p.matcher(str);//要匹配的表达式
while(m.find()){
	result.add(m.group(0).trim());//.trim()表示去掉空格保存
}
//此时result数组中有两个值,{ccc,ccc}
//可以通过.get()方法,获取数组中的结果
String s=result.get(0);//获取第一个值,结果为ccc

常用的正则表达式

匹配手机电话号码
^1[3|4|5|6|7|8][0-9]\d{8}
以1开头,第二个数字是3-8的任意数字,第三个数字是0-9的任意数字,后面为8个0-9的任意数字。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值