import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Text
{
public static void main (String [] args)
{
Pattern p = Pattern.compile ("b");
Matcher m = p.matcher("hi buddy! How is bill?");
while (m.find ())
{
System.out.println ("Match started at:"+ m.start(0));
System.out.println ("Match ended at:"+m.end(0));
}
}
}运行结果:Match started at:3Match ended at:4Match started at:17Match ended at:18请求大神讲一下17和18是怎么得来的呀
3 回答
皇4
TA贡献2条经验 获得超1个赞
find
public boolean find()
尝试查找与该模式匹配的输入序列的下一个子序列。
此方法从匹配器区域的开头开始,如果该方法的前一次调用成功了并且从那时开始匹配器没有被重置,则从以前匹配操作没有匹配的第一个字符开始。
如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。
返回:当且仅当输入序列的子序列匹配此匹配器的模式时才返回 true。
while循环中的find方法第一次调用,输出了前两行,接着循环继续,第二次调用时因为matcher匹配器没有重置,find方法匹配第二个“b”,所以输出了第三第四行结果。
添加回答
举报
0/150
提交
取消