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

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

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

by Anonymous » 12 Sep 2025, 07:26

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.

Top