Java正则表达式总结笔记

 java正则表达式特点:用一些特定的符号来表示一些代码操作,这样就简化书写。以下正则表达式4个功能。

1、匹配:string matcher(String)方法:

用matches匹配整个字符串,只要有一个规则不符合就匹配失败。

例子:用正则表达式匹配手机号码,默认手机号码为13XXX、15XXX或18XXX开头。


一些常用的匹配规则:

字符类:
[abc]   这个位只能是abc
[^abc]  这个位不能是abc
[a-zA-Z] a到z或A到Z,两头的字母都包括
[a-d[m-p]]  a到d或m到p  取并集
[a-z&&[def]]  def  取交集
[a-z&&[^bc]]  a-z与非bc的交集
[a-z&&[^m-p]]  a-z与非m到p的交集 ,相当于[a-lq-z]

预定义字符类:
.         任何字符
\d        数字[0-9]
\D        非数字   在正则表达式中,\都是成对出现的
\s        空白字符 (ascii码中)
\S        非空白字符
\w        单词字符  [a-zA-Z_0-9] 字母数字下划线
\W        非单词字符

Greedy数量词
X?        X,一次或一次也没有
X*        X,零次或多次
X+        X,一次或多次
X{n}      X,恰好n次
X{n,}     X,至少n次
X{n,m}    X,至少n次,但是不超过m

边界匹配器:
\b  :单词边界


2、切割:string split(String)方法:
根据规则对字符串进行切割,返回一个String数组。
捕获组的概念:如字符串erkktyqquizz,用.表示任意字符,如果第二位用第一位匹配的结果,则可以表示为"(.)\\1"

例子:用正则表达式切割叠词

3、替换字符串:replaceAll(String regex,String replacement) 
通过正则表达式,把字符串中符合规则的部分替换为另一个部分。
可以用特殊符号$获取到正则表达式元组中的组。如$1就是获取组的一个元素。


例子:用正则表达式将叠词中的连续字符替换为单个字符


4、获取指定规则的子字符串:(获取)
操作步骤:
a、将正则表达式封装成对象。 Pattern对象用compile静态方法
b、让正则对象和要操作的字符串相关联。matche(字符串)返回模式的匹配器对象。用这个对象去处理字符串。
c、关联后,获取正则匹配引擎。
d、通过引擎对符合规则的字串进行操作,比如取出。

Matches对象常用方法:
group():返回由以前匹配操作所匹配的输入子序列。
find():尝试查找与该模式匹配的输入序列的下一个子序列,返回boolean类型。
start()\\end() 获取字符串索引位置。

注意:同一个匹配器所用的是同一个指针,所以调用matches以后指针就发生移动了。


例子:找出字符串中连续3个字母组成的字符串


总结:
1、如果想知道该字符串是对是错,用匹配。
2、想要将已有的字符串变成另一个字符串用替换。
3,想要自定义方法将字符串编程多个字符串,用切割。
4、想要拿到符合需求的字符串子串,用获取。


例子:将字符串中的IP地址按地址段分类



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值