wie kommst du denn an die ‘drei Unterpunkte’ bisher ran, arbeitest du mit group() von Matcher?
und was genau ist dein Ziel beim ‘rankommen’, willst du einen String “;” haben, was bringt dir das?
dein Beispiel mit asdfasdfasfd ist schwer nachzuvollziehen, das zeigt wie es doch besser ist, a, b, c oder so zu verwenden,
und das Beispiel hat noch den Nachteil, dass direkt a;b;c hintereinander nicht vorkommt, also ein Zeichen b in zwei find()-Vorgängen Verwendung finden muss, dass wird nämlich dann nicht gut klappen bisher,
hier ein anderer Ansatz:
public class Test {
public static void main(String[] args) {
String st = "a;b;c;;d;;e;f;;g;";
Pattern p = Pattern.compile("(?<!;);(?!;)");
Matcher m = p.matcher(st);
while (m.find()) {
System.out.println(m.group() + " " + m.start());
}
}
}
liefert
; 1
; 3
; 11
; 16
also “;” wenn dir das nützt und die Position im String
das hatte ich auf diversen Online RegEx Testern probiert und da hat er nichts gefunden. Daher dachte ich, das wäre nicht korrekt. Dann teste ich es mal in Java direkt.