java中的正则表达式的使用

在java中使用正则表达式,需要引入java中的java.util.regex包。
改包内包含了与正则表达式相关的Pattern类,Matcher类。
Pattern类表示以字符串形式指定的正则表达式,
而Matcher类的实例用于匹配字符串与给定模式

一个正则表达式编译成Pattern类的对象,这个Pattern对象蒋辉使用Pattern类的matcher()方法来产生一个Matcher对象;接下来就可以使用该Matcher实例编译正则表达式,从而对目标字符串进行匹配工作。需要注意的是,多个Matcher对象是可以共用一个Pattern对象的。

Pattern类以字符串的形式指定正则表达式的编译表示形式。Pattern类没有构造方法,而是使用compile()生成一个Pattern类对象。

Pattern p = Pattern.complie("[abc]+");

Pattern p = Pattern.complie("[/]+");
String[] result = p.split(str);
String[] result = p.split(str,2);
表示分割的次数不能超过2次

Matcher类
Matcher类的对象由Pattern类的方法matcher(CharSequence input)生成。

Pattern p = Pattern.compile("xinwei");
Matcher m = p.matcher("123,xinwei,456,xinwei");
boolean result = m.find();
//使用find找到第一个匹配的对象

m.appendReplacement(sb,"panglina");
//将"panglina加入到sb对象中"

此时sb(stringbuffer)对象中的值为:123,panglina


正则表达式常用的4种功能
查找,获取,分段,替换
1、查找
find()
Pattern p = Pattern.compile(regexp,Pattern.CASE_INSENSITIVE)
表示查找时忽略大小写,即使用flag参数指定模式匹配器的匹配模式

2、获取
利用group()方法提取某个具体的匹配结果
先去查找
m.find();
for(int i=1;i<m.groupCount();i++){
m.group(i);
}


3、分隔
使用split()方法可以讲指定的字符串使用指定的正则表达式进行分隔
这里就不需要得到matcher对象

Pattern p = Pattern.compile("::");
String[] str = p.split("xd::avc:asd");

对于分隔,我们也可以使用String类的分隔
String str1 = "xd::avc:asd";
str1.split("::");


4、替换
Matcher类提供了非常易用的方法 replaceAll()用于将指定的正则表达式匹配的字符串替换为指定的字符串
另外,替换操作可以实现删除操作。将其替换成空字符串就可以了

Pattern p = Pattern.compile("a+");
Matcher m = p.matcher("aaaacccddd a ccdeaa");
String str = m.replaceAll("A");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值