Heim >Java >javaLernprogramm >Wie kann ich alle Regex-Übereinstimmungen in ein Array in Java extrahieren?

Wie kann ich alle Regex-Übereinstimmungen in ein Array in Java extrahieren?

Linda Hamilton
Linda HamiltonOriginal
2024-12-08 19:04:141001Durchsuche

How Can I Extract All Regex Matches into an Array in Java?

String-Übereinstimmungen mithilfe von Regex-Ausdrücken in Java in ein Array extrahieren

In Java kann die Unfähigkeit, direkt ein Array von Regex-Übereinstimmungen abzurufen, Sie verwirren. Dieser Leitfaden befasst sich mit dieser Herausforderung und bietet Lösungen zum Erfassen aller Zeichenfolgen, die einem regulären Ausdruck entsprechen.

Der Schlüssel zum Abrufen dieser Übereinstimmungen liegt in der Verwendung eines Matchers, der iterativ Vorkommen findet:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

List<String> allMatches = new ArrayList<>();
Matcher m = Pattern.compile("your regex expression here")
    .matcher(yourStringHere);
while (m.find()) {
   allMatches.add(m.group());
}

Nachdem Sie allMatches mit den Übereinstimmungen gefüllt haben, können Sie es bei Bedarf in ein Array konvertieren:

allMatches.toArray(new String[0]);

Alternativ können Sie darüber nachdenken Verwenden von MatchResult, um Matching-Vorgänge zu vereinfachen. Eine Hilfsfunktion wie allMatches:

public static Iterable<MatchResult> allMatches(
      final Pattern p, final CharSequence input) {
  ...
}

ermöglicht Ihnen, über Übereinstimmungen zu iterieren, wie zum Beispiel:

for (MatchResult match : allMatches(Pattern.compile("[abc]"), "abracadabra")) {
  System.out.println(match.group() + " at " + match.start());
}

Bereitstellung der Ausgabe:

a at 0
b at 1
a at 3
c at 4
a at 5
a at 7
b at 8
a at 10

Das obige ist der detaillierte Inhalt vonWie kann ich alle Regex-Übereinstimmungen in ein Array in Java extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn