Wie behalte ich alle Vorkommen von x bei, wenn Sie den gierigen Quantifizierer x* in einem Java Regexp verwenden?Java

Java-Forum
Anonymous
 Wie behalte ich alle Vorkommen von x bei, wenn Sie den gierigen Quantifizierer x* in einem Java Regexp verwenden?

Post by Anonymous »

Ich habe einen regelmäßigen Ausdruck, den ich verwende, um Übereinstimmungen einer Liste von coma-getrennten Wörtern zwischen innerhalb einer Zeichenfolge wie "Hallo sqjsjqk dsjkfjkdsf ffsd" < /code> In den Beispielen zu verhalten, in dem die Egu-Word-Word-Word-Word-Word zwischen den Vorbildern zwischen den Vorschriften zu verfolgen ist. Zahnspangen: < /p>

Hier ist mein Ausdruck: < /code> (Räume werden zur Lesbarkeit hinzugefügt, aber kein Teil des Musters) < /p>

Parenthesen, um zu erfassen. coma. < /p>

Hier ist mein Testcode: < /p>

@Test
public void test() {
String patternString = "";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher("Hello sqjsjqk dsjkfjkdsf ffsd");
while(matcher.find()) {
System.out.println("== Match ==");
MatchResult matchResult = matcher.toMatchResult();
for(int i = 0; i < matchResult.groupCount(); i++) {
System.out.println(" " + matchResult.group(i + 1));
}
}
}
< /code>

Dies ist die erzeugte Ausgabe: < /p>

== Match ==
a1
null
== Match ==
b1
b2
== Match ==
c1
c3
< /code>

Und hier ist das, was ich wollte: < /p>

== Match ==
a1
== Match ==
b1
b2
== Match ==
c1
c2
c3
< /code>

Ich verstehe, dass es genau so viele Gruppen wie die Anzahl der Erfassungsgruppen in meinem Ausdruck gibt, aber das ist nicht das, was ich will, weil ich das gesamte Substring benötige, der als \ w+< /code> < /p>

usw.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post