Heim > Java > javaLernprogramm > Wie kann ich in Java ein Array von Zeichenfolgen aus Regex-Übereinstimmungen erstellen?

Wie kann ich in Java ein Array von Zeichenfolgen aus Regex-Übereinstimmungen erstellen?

Patricia Arquette
Freigeben: 2024-11-29 14:43:13
Original
238 Leute haben es durchsucht

How Can I Create an Array of Strings from Regex Matches in Java?

Erstellen von Arrays aus Regex-Übereinstimmungen

In Java werden Regex-Übereinstimmungen normalerweise als boolesche Werte überprüft, die angeben, ob ein Muster mit einer Zeichenfolge übereinstimmt. Es ist jedoch möglich, die passenden Zeichenfolgen aus einem regulären Ausdruck in ein Array zu extrahieren.

Um dies zu erreichen, können Sie einen Matcher verwenden:

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

...

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

Der obige Code verwendet ein Muster, um Erstellen Sie eine Matcher-Instanz, die dann zur iterativen Identifizierung von Übereinstimmungen verwendet wird. Jede Übereinstimmung wird einer Liste hinzugefügt, und Sie können die Liste wie folgt in ein Array konvertieren:

allMatches.toArray(new String[0]);
Nach dem Login kopieren

Alternativ können Sie einen benutzerdefinierten Iterator erstellen, um eine verzögerte Iteration über Übereinstimmungen zu ermöglichen:

public static Iterable<MatchResult> allMatches(
      final Pattern p, final CharSequence input) {
  return new Iterable<MatchResult>() {
    ...
  };
}
Nach dem Login kopieren

Mit diesem Iterator können Sie Übereinstimmungen durchlaufen, ohne alle möglichen Übereinstimmungen sofort finden zu müssen.

Wie im Code gezeigt Snippet:

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

Dies wird Folgendes ausgeben:

a at 0
b at 1
a at 3
c at 4
a at 5
a at 7
b at 8
a at 10
Nach dem Login kopieren

Demonstriert, wie mithilfe der MatchResult-Implementierung iterativ auf Übereinstimmungen zugegriffen werden kann.

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage