返回重叠的正则表达式
是否有正则表达式将捕获表达式的所有实例,无论它们是否重叠?
例如在/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