是否有正则表达式捕获表达式的所有实例,无论它们是否重叠?
E.g。在/abc/def/ghi
中,如果我想捕获以/
开头的所有字符串。正则表达式(/.*)
仅返回整个字符串,但我希望它在/def/ghi
和/ghi
上匹配。
答案 0 :(得分:9)
当然,匹配一个空字符串并在捕获组中捕获/.*
之后放置一个预测:
Matcher m = Pattern.compile("(?=(/.*))").matcher("/abc/def/ghi");
while(m.find()) {
System.out.println(m.group(1));
}
会打印:
/abc/def/ghi
/def/ghi
/ghi