我正在尝试创建一个regularx表达式来查找字符串中的某个模式,但是我在使它正常工作方面遇到了一些困难。我的代码如下所示:
public String regexTest(String test) {
Pattern p = Pattern.compile("A");
Matcher m = p.matcher(test);
while (m.find()) {
return m.group();
}
return "";
}
如果字符串测试包含“A B C D A B A”,但它只返回“A”,而我希望它返回“A”,“A”和“A”。 有谁知道我在这里做错了什么?
答案 0 :(得分:1)
匹配器就像一个光标。您需要致电Matcher#find()
才能转到下一个结果。
m.find()
m.group() // -> first result
m.find()
m.group() // -> second result
答案 1 :(得分:0)
你在第一场比赛后回来(也就是退出你的方法),所以这就是你的问题我猜...
return m.group();
答案 2 :(得分:0)
如果要返回多个值,则不能将String作为方法返回类型。我建议使用List<String>
。然后在函数中,你不能在while循环中返回,而是将找到的字符串添加到结果中(应该从空列表开始)。