Die Funktion REGEXP_MATCHES in PostgreSQL wird verwendet, um mit regulären Ausdrücken nach einem Muster innerhalb einer Zeichenkette zu suchen und alle Vorkommen von Übereinstimmungen zurückzugeben. Sie ist besonders nützlich, um Teilzeichenfolgen zu extrahieren, die einem bestimmten Muster entsprechen.
Verwendung
Die Funktion REGEXP_MATCHES wird verwendet, wenn du aus einer Zeichenkette Teilzeichenfolgen finden und extrahieren musst, die mit einem bestimmten Muster eines regulären Ausdrucks übereinstimmen. Sie gibt eine Reihe von Text-Arrays zurück, wobei jedes Array die Teilzeichenketten enthält, die den Gruppen im Muster entsprechen. Wenn das Muster übereinstimmt, aber keine Erfassungsgruppen enthält, wird ein leeres Array zurückgegeben.
SELECTREGEXP_MATCHES(source_string, pattern [, flags]);Bereitgestellt von
source_string: Die zu suchende Zeichenfolge.
pattern: Der reguläre Ausdruck, der mit der Quellzeichenkette verglichen werden soll.
flags: Optional. Modifikatoren wie "i" für Groß- und Kleinschreibung. Ohne diese Angabe wird standardmäßig die Groß- und Kleinschreibung beachtet.
Hier wird das Muster 'postgresql' mit der Zeichenkette 'PostgreSQL' abgeglichen und {"PostgreSQL"} zurückgegeben.
3. Mehrere Gruppen extrahieren
SELECTREGEXP_MATCHES('User: John, Age: 30','User: (\w+), Age: (\d+)');Bereitgestellt von
In diesem Beispiel extrahiert die Funktion den Benutzernamen und das Alter aus dem String und gibt {"John", "30"} als übereinstimmende Gruppen zurück.
4. Verwendung mit LATERAL in einer komplexen Abfrage
SELECT user_data.username, match
FROM users as user_data,LATERALREGEXP_MATCHES(user_data.details,'User: (\w+), Age: (\d+)')AS match;Bereitgestellt von
Dieses Beispiel demonstriert die Verwendung von REGEXP_MATCHES in einer FROM Klausel mit LATERAL, um Benutzerdetails aus einer Tabelle zu extrahieren und anzuzeigen.
Tipps und bewährte Praktiken
Verstehe die Grenzen der Flagge. Beachte, dass das 'g'-Flag für den globalen Abgleich nicht von REGEXP_MATCHES unterstützt wird.
Erfasse bestimmte Teile. Verwende Klammern in Mustern, um bestimmte Teile der übereinstimmenden Zeichenfolge für detaillierte Ergebnisse zu erfassen.
Überlegungen zum Rückgabetyp.REGEXP_MATCHES gibt eine Reihe von Text-Arrays zurück, die in deiner Abfragelogik möglicherweise zusätzlich behandelt werden müssen.
Funktionsauswahl. Vergleiche mit ähnlichen Funktionen wie REGEXP_REPLACE, REGEXP_SPLIT_TO_TABLE und REGEXP_SPLIT_TO_ARRAY, um die passende für deine Bedürfnisse zu finden.
Die Funktion
REGEXP_MATCHESin PostgreSQL wird verwendet, um mit regulären Ausdrücken nach einem Muster innerhalb einer Zeichenkette zu suchen und alle Vorkommen von Übereinstimmungen zurückzugeben. Sie ist besonders nützlich, um Teilzeichenfolgen zu extrahieren, die einem bestimmten Muster entsprechen.Verwendung
Die Funktion
REGEXP_MATCHESwird verwendet, wenn du aus einer Zeichenkette Teilzeichenfolgen finden und extrahieren musst, die mit einem bestimmten Muster eines regulären Ausdrucks übereinstimmen. Sie gibt eine Reihe von Text-Arrays zurück, wobei jedes Array die Teilzeichenketten enthält, die den Gruppen im Muster entsprechen. Wenn das Muster übereinstimmt, aber keine Erfassungsgruppen enthält, wird ein leeres Array zurückgegeben.source_string: Die zu suchende Zeichenfolge.pattern: Der reguläre Ausdruck, der mit der Quellzeichenkette verglichen werden soll.flags: Optional. Modifikatoren wie "i" für Groß- und Kleinschreibung. Ohne diese Angabe wird standardmäßig die Groß- und Kleinschreibung beachtet.Beispiele
1. Basic Pattern Match
Diese Abfrage sucht nach einer oder mehreren Ziffern in der Zeichenfolge
'abc123'und gibt{"123"}als Treffer zurück.2. Groß- und Kleinschreibung beachten
Hier wird das Muster
'postgresql'mit der Zeichenkette'PostgreSQL'abgeglichen und{"PostgreSQL"}zurückgegeben.3. Mehrere Gruppen extrahieren
In diesem Beispiel extrahiert die Funktion den Benutzernamen und das Alter aus dem String und gibt
{"John", "30"}als übereinstimmende Gruppen zurück.4. Verwendung mit LATERAL in einer komplexen Abfrage
Dieses Beispiel demonstriert die Verwendung von
REGEXP_MATCHESin einerFROMKlausel mitLATERAL, um Benutzerdetails aus einer Tabelle zu extrahieren und anzuzeigen.Tipps und bewährte Praktiken
REGEXP_MATCHESunterstützt wird.REGEXP_MATCHESgibt eine Reihe von Text-Arrays zurück, die in deiner Abfragelogik möglicherweise zusätzlich behandelt werden müssen.REGEXP_REPLACE,REGEXP_SPLIT_TO_TABLEundREGEXP_SPLIT_TO_ARRAY, um die passende für deine Bedürfnisse zu finden.