返回重叠的正则表达式

是否有正则表达式将捕获表达式的所有实例,无论它们是否重叠?

例如在/abc/def/ghi如果我想捕获以/开头的所有字符串。 正则表达式(/.*)只返回整个字符串,但我希望它匹配/def/ghi/ghi

当然,匹配一个空字符串并在捕获组中捕获/.*之后放置一个/.*

 Matcher m = Pattern.compile("(?=(/.*))").matcher("/abc/def/ghi"); while(m.find()) { System.out.println(m.group(1)); } 

会打印:

 /abc/def/ghi /def/ghi /ghi