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

Wie kann ich ein Array von Regex-Übereinstimmungen in Java abrufen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-03 12:06:15786Durchsuche

How Can I Retrieve an Array of Regex Matches in Java?

Abruf eines Arrays von Regex-Übereinstimmungen in Java

Problem:

Bei Verwendung von Regex-Ausdrücken In Java gibt die primäre Methode zur Überprüfung von Übereinstimmungen nur einen booleschen Wert zurück, der angibt, ob eine Übereinstimmung vorliegt oder nicht. Dies kann einschränkend sein, wenn Sie versuchen, mehrere übereinstimmende Instanzen in einem Array zu erfassen und zu speichern.

Lösung:

So erstellen Sie ein Array aller in einer bestimmten Zeichenfolge gefundenen Zeichenfolgenübereinstimmungen Führen Sie unter Verwendung eines regulären Ausdrucks die folgenden Schritte aus:

  1. Erstellen Sie einen Matcher:Verwenden Sie das Muster und Matcher-Klassen, um ein Matcher-Objekt zu erstellen. Mit diesem Objekt können Sie iterativ Übereinstimmungen innerhalb der Eingabezeichenfolge finden.
  2. Übereinstimmungen iterieren und sammeln: Verwenden Sie die find()-Methode des Matcher-Objekts, um Übereinstimmungen zu finden, und die group()-Methode, um die Übereinstimmungen abzurufen übereinstimmender Teilstring. Setzen Sie diesen Vorgang fort, bis keine Übereinstimmungen mehr gefunden werden.
  3. In Array konvertieren: Sobald alle Übereinstimmungen gesammelt wurden, verwenden Sie die Methode toArray(), um die Liste der Übereinstimmungen in ein Array von Zeichenfolgen zu konvertieren . Dieses Array enthält alle Zeichenfolgen, die den angegebenen Regex-Ausdruck erfüllen.

Beispielcode:

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

public class RegexArray {

    public static void main(String[] args) {
        String input = "This is a sample string";
        String regex = "[a-z]+";

        // Create a Matcher object
        Matcher matcher = Pattern.compile(regex).matcher(input);

        // Collect matching substrings
        List<String> matches = new ArrayList<>();
        while (matcher.find()) {
            matches.add(matcher.group());
        }

        // Convert to string array
        String[] matchArray = matches.toArray(new String[0]);
    }
}

Durch die Implementierung dieser Schritte können Sie effektiv erfassen und speichern Sie alle Instanzen, die einem angegebenen Regex-Ausdruck entsprechen, in einem Array und bieten Sie so eine strukturierte und organisierte Möglichkeit, mit übereinstimmenden Daten zu arbeiten.

Das obige ist der detaillierte Inhalt vonWie kann ich ein Array von Regex-Übereinstimmungen in Java abrufen?. 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