我正在使用Java中的Pattern和Matcher。我有以下代码:
String searchString = "0,00,0";
String searchInText = "0,00,00,0"
Pattern p = Pattern.compile(searchString);
Matcher m = p.matcher(searchString);
while(m.find){
...
}
我的问题是匹配器只找到从第一个零到第四个零的一个匹配。但是应该存在从第3个零到最后一个零的另一个匹配。
有人能帮助我吗?有解决方法吗?
答案 0 :(得分:2)
使用正则表达式获取overlapping matches非常棘手,尤其是如果您对正则表达式不是很熟悉的话。
如果您没有真正使用正则表达式功能(如您的示例中所示),则可以使用indexOf(String, int)
轻松执行此操作,并不断增加您从中进行搜索的索引。< / p>
int index = 0;
while((index = text.indexOf(pattern, index)) > -1) {
System.out.println(index + " " + pattern);
index++;
}