Java Matcher.find()查找字符串

Matcher.find()对字符串进行匹配,匹配到的字符串可以在任何位置. 

定义

public boolean find()
public boolean find(int start)

例子

查找替换指定字符串 

Pattern p = Pattern.compile(expression); // 正则表达式 
Matcher m = p.matcher(text); // 操作的字符串 
StringBuffer sb = new StringBuffer();
int i = 0;
while (m.find()) {
    m.appendReplacement(sb, str);
    i++; //字符串出现次数 
}
m.appendTail(sb); //从截取点将后面的字符串接上 
String s = sb.toString();

查找输出字符串

Pattern p = Pattern.compile(expression); // 正则表达式 
Matcher m = p.matcher(text); // 操作的字符串 
while (m.find()) {
    matcher.start();
    matcher.end();
    matcher.group(1);
}

匹配字符串

Pattern p=Pattern.compile("\\d+"); 
Matcher m=p.matcher("22bb23"); 
m.find();//返回true 
Matcher m2=p.matcher("aa2223"); 
m2.find();//返回true 
Matcher m3=p.matcher("aa2223bb"); 
m3.find();//返回true 
Matcher m4=p.matcher("aabb"); 
m4.find();//返回false

总结

1. find()是部分匹配,从当前位置开始匹配,找到一个匹配的子串,将移动下次匹配的位置。

2. find()从匹配器区域的开头开始,如果该方法的前一次调用成功了并且从那时开始匹配器没有被重置,则从以前匹配操作没有匹配的第一个字符开始。如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。  

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。