正则表达式

一 预定义字符

注意: 任何预定义字符没有加上数量词都只能匹配一个字符

.  任意字符
\d 0-9的数字   注:\有特殊含义所以一般写成\\d
\D 非数字       注:一般写成\\D
\s 空白字符
\S 非空白字符
\w 单词字符
\W 非单词字符

二 数量词

X?      X一次或一次也没有 例:"1".matches("\\d?")
X*      X零次或多次
X+      X一次或多次
X{n}    X恰好n次
X{n,}   X至少n次
X{n,m}  X至少n次,但不超过m次

三 范围词

注意 : 范围词里不管内容有多长, 没有数量词配合只能匹配一个字符

[abc] a,bc
[^abc] 除了a,b,c的任意字符
[a-zA-z] 大写字母和小写字母

四 示例

匹配

 //匹配固定电话 区号-主机号  区号: 首位0 长度:3-4 主机号:首位非0 长度;7-8
 String regx = "0\\d{2,3}-[1-9]{6,7}"

切割

//根据重叠词切割字符串
String str = "好好学习天天向上";
String[] datas = str.split("(.)\\1+");

替换

//替换电话号码
String str = "如有需求联系他:13556082123"
String reg = "1[34578]\\d{9}";
str.replaceAll(reg,"******");

查找

五 正则分组

分组的目的是为了让正则的内容被复用起来,组号是从1开始。

((A)(B(C))) 要看有几组 就要看"("有几个组
第一组 : ((A)(B(C)))
第二组 : (A)
第三组 : (B(C))
第四组 : (C)

\1引用第一组所匹配到的内容

示例
//根据重叠词切割字符串
String str = "好好学习天天向上";
String[] datas = str.split("(.)\\1+");

六 正则对象

查找

Pattern p = Pattern.compile("正则");
Matcher m = p.matcher("aaaabbbb");//获取匹配器Matcher
boolean b = m.matches();

//匹配器要使用到的方法:
1 find() 通知匹配器去匹配字符串,查找符合规则的字符串。
2 group() 获取符合规则的子串,使用group方法的时候一定要先调用find方法查找,否则报错
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值