Heim >Java >javaLernprogramm >Wie kann ich alle Regex-Übereinstimmungen in ein Array in Java 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!