Überlappende reguläre Ausdrücke zurückgeben

Gibt es einen regulären Ausdruck, der alle Instanzen eines Ausdrucks erfasst, unabhängig davon, ob sie sich überlappen oder nicht?

ZB in /abc/def/ghi wenn ich alle Strings fangen möchte, die mit / . Die Regex (/.*) nur die gesamte Zeichenfolge zurück, aber ich möchte, dass sie auch auf /def/ghi und /ghi .

   

Sicher, passen Sie eine leere Zeichenfolge an und geben Sie eine Look-ahead-Suche nach der /.* in einer Erfassungsgruppe ein:

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

würde drucken:

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