您的位置:首页 > 编程语言 > Java开发

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

2017-02-09 14:14 495 查看
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);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: