java正则表达式方法的使用matches,find,lookingAt,replaceAll,group

本文介绍Java中正则表达式的应用案例,包括模式匹配、替换字符串中的特定模式及复杂分组操作。通过实例展示了如何查找字符串中的数字、替换大小写的Java关键字以及分组匹配。


public static void main(String[] args) {


Pattern p = Pattern.compile("\\d{3,5}");
String s="5-13521-562-1235-1";
Matcher m = p.matcher(s);
//匹配整个字符串
Dy(m.matches());
//有matches和find共同使用的时候,读取字符串之后不会再返回读取的值,通过reset恢复读取过的值
m.reset();
//find找子串当中对应的匹配模式
Dy(m.find());
//start()起始位置 end()结束位置,在使用的时候必须要能找到对应的子串,不然报错
Dy(m.start()+"-"+m.end());
Dy(m.find());
Dy(m.start()+"-"+m.end());
Dy(m.find());
Dy(m.start()+"-"+m.end());
Dy(m.find());


Dy(m.find());


//lookingAt每次都从头开始读取
Dy(m.lookingAt());
Dy(m.lookingAt());
Dy(m.lookingAt());
Dy(m.lookingAt());


/* 一、查找所有的java字符串并替换成大写JAVA

Pattern pattern = Pattern.compile("java",Pattern.CASE_INSENSITIVE);//Pattern.CASE_INSENSITIVE 不敏感大小写
Matcher matcher = pattern.matcher("Java jAva jaVa ilovejava youhateJAVA 23232sdd");

while(matcher.find()){
System.out.println(matcher.group());
}
replaceAll("JAVA")替换
Dy(matcher.replaceAll("JAVA"));*/


//二、查找字符串当中所有的java,偶数替换成JAVA,奇数替换成java;
Pattern pattern = Pattern.compile("java",Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("51515xs Java jAva jaVa ilovejava youhateJAVA 23232sdd");
StringBuffer buffer = new StringBuffer();
int i=0;
while(matcher.find()){
i++;
if(i%2==0){
matcher.appendReplacement(buffer, "JAVA");
}else{
matcher.appendReplacement(buffer, "java");
}
}
//替换完成最后一个java后面的尾巴给去掉了通过appendTail添加尾巴
matcher.appendTail(buffer);
Dy(buffer);


//group分组,在pattern.compile()当中通过小括号分组,通过group打印需要的分组
//通过左边的小括号区分对应的分组,group默认的是整个大的分组
Pattern pattern2 = pattern.compile("(\\d{3,5})([a-z]{2})");
Matcher matcher2 = pattern2.matcher("1212ss 321sd 3124a 34563cc 22344fds");
while(matcher2.find()){
Dy(matcher2.group(2));
}

}


private static void Dy(Object o) {
System.out.println(o);

}

}






评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值