正则表达式之Matcher#find
正则表达式之Matcher#find)
Matcher#find()
如果你第一次使用Pattern正则表达式,或许遇到过很困惑的问题,明明很简单的一个正则表达式,比如匹配多个数字“\d*”。
Pattern p = Pattern.compile("aaa(\\d*)");
Matcher m = p.matcher("aaa1234");
m.group(1);//正常此处应该返回1234,但是实际会报异常IndexOutOfBoundsException
究其原因,最后发现是在m.group(1)前面未调用m.find()。
p.matcher()返回的是一个匹配器,而并非开始实际对字符串进行搜索匹配,真正开启匹配的方法是Matcher#find,该方法返回的类型为Boolean.