我无法理解此代码的错误以及 ....
viewModel: function(params) {
this.name = params.name
},
....
方法的作用:
find()
我认为Pattern p = Pattern.compile("a*b+");
Matcher m = p.matcher("ab");
m.find(); // if i comment this the code with throw java.lang.IllegalStateException: No match available
String output = String.format("found the text \"%s\" beginning at index %d and end at index %d ",m.group() ,m.start() , m.end());
System.out.println(output);
方法的工作是搜索模式,并在我们搜索的字符串中返回匹配项。任何人都可以解释一下,如果我注释掉find()
方法调用,我会收到错误吗?
答案 0 :(得分:2)
find()
正是它应该做的事情。来自javadocs
尝试查找输入序列的下一个子序列 匹配模式。
除非您致电group()
,否则无法致电find()
,因为您找不到匹配项。 find()
用于查找匹配的组,然后可以使用group()
答案 1 :(得分:1)
正如@TheLostMind所说,除非你调用find(),否则你不能调用组。
使用find()
的正确方法是在循环中使用它:
while(m.find()){ //ends when it can't find anything else that matches
String output = String.format("found the text \"%s\" beginning at index %d and end at index %d ",m.group() ,m.start() , m.end());
System.out.println(output);
}