SQL-Regex verstehen
James Reed
Infrastructure Engineer · Leapcell

Key Takeaways
- SQL-Regex ermöglicht erweitertes Pattern-Matching und Datenvalidierung direkt in Abfragen.
- Verschiedene SQL-Dialekte unterstützen Regex mit ihrer eigenen Syntax und Funktionen.
- Die Verwendung von Regex in SQL kann die Datenverarbeitung optimieren und die Datenqualität verbessern.
Reguläre Ausdrücke (Regex) in SQL bieten leistungsstarke Pattern-Matching-Funktionen, die es Benutzern ermöglichen, komplexe Zeichenfolgensuchen, Validierungen und Manipulationen direkt in SQL-Abfragen durchzuführen. Dieser Artikel befasst sich mit den Grundlagen von SQL-Regex und beleuchtet deren Syntax, Funktionen und praktischen Anwendungen in verschiedenen Datenbanksystemen.
Was sind reguläre Ausdrücke in SQL?
Reguläre Ausdrücke sind Zeichenfolgen, die Suchmuster definieren. In SQL ermöglicht Regex ein erweitertes String-Matching, das die Möglichkeiten grundlegender Operatoren wie LIKE
übertrifft. Verschiedene SQL-Dialekte unterstützen Regex-Funktionen, wie zum Beispiel:
- MySQL:
REGEXP
- oderRLIKE
-Operatoren. - PostgreSQL: POSIX-Operatoren wie
~
,~*
,!~
und!~*
. - Oracle: Funktionen wie
REGEXP_LIKE
,REGEXP_REPLACE
,REGEXP_INSTR
undREGEXP_SUBSTR
. - SQL Server: Ab Version 2025 werden Funktionen wie
REGEXP_LIKE
,REGEXP_REPLACE
undREGEXP_SUBSTR
unterstützt.
Häufige Regex-Metazeichen in SQL
Regex verwendet Metazeichen, um komplexe Suchmuster zu definieren:
.
: Passt auf jedes einzelne Zeichen.*
: Passt auf null oder mehr Vorkommnisse des vorhergehenden Elements.+
: Passt auf ein oder mehr Vorkommnisse des vorhergehenden Elements.?
: Passt auf null oder ein Vorkommnis des vorhergehenden Elements.^
: Verankert die Übereinstimmung am Anfang der Zeichenfolge.$
: Verankert die Übereinstimmung am Ende der Zeichenfolge.[abc]
: Passt auf jedes einzelne Zeichen innerhalb der Klammern.[^abc]
: Passt auf jedes Zeichen, das nicht in den Klammern aufgeführt ist.{n}
: Passt genau auf n Vorkommnisse des vorhergehenden Elements.{m,n}
: Passt auf zwischen m und n Vorkommnisse des vorhergehenden Elements.|
: Fungiert als logisches ODER zwischen Mustern.
Wichtige Regex-Funktionen in SQL
1. REGEXP_LIKE
Bestimmt, ob eine Zeichenfolge mit einem angegebenen Regex-Muster übereinstimmt.
Beispiel (Oracle):
SELECT * FROM employees WHERE REGEXP_LIKE(email, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$');
Diese Abfrage ruft alle Mitarbeiterdatensätze mit gültigen E-Mail-Formaten ab.
2. REGEXP_REPLACE
Ersetzt Teilzeichenfolgen, die mit einem Regex-Muster übereinstimmen, durch eine angegebene Ersetzung.
Beispiel (MySQL):
SELECT REGEXP_REPLACE(phone_number, '[^0-9]', '') AS cleaned_number FROM contacts;
Dies entfernt alle nicht-numerischen Zeichen aus Telefonnummern.
3. REGEXP_SUBSTR
Extrahiert Teilzeichenfolgen, die mit einem Regex-Muster übereinstimmen.
Beispiel (Oracle):
SELECT REGEXP_SUBSTR(email, '@[^.]+') AS domain FROM users;
Dies extrahiert den Domänenteil aus E-Mail-Adressen.
4. REGEXP_INSTR
Gibt die Position der Teilzeichenfolge zurück, die mit dem Regex-Muster übereinstimmt.
Beispiel (Oracle):
SELECT REGEXP_INSTR('Contact: 123-456-7890', '[0-9]{3}-[0-9]{3}-[0-9]{4}') AS position FROM dual;
Dies findet die Startposition eines Telefonnummernmusters in der Zeichenfolge.
Praktische Beispiele
Übereinstimmende Zeichenfolgen, die mit 'Sa' beginnen
MySQL:
SELECT name FROM students WHERE name REGEXP '^Sa';
Ruft Namen ab, die mit 'Sa' beginnen, wie z. B. 'Sarah' oder 'Samuel'.
Extrahieren von URLs aus Text
PostgreSQL:
SELECT REGEXP_SUBSTR(message, 'https?://[^ ]+') AS url FROM messages;
Extrahiert URLs aus Nachrichtentexten.
Validieren von E-Mail-Adressen
Oracle:
SELECT email FROM users WHERE REGEXP_LIKE(email, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$');
Wählt E-Mails aus, die einem Standard-E-Mail-Format entsprechen.
Überlegungen zu SQL-Dialekten
- MySQL:
REGEXP
ist standardmäßig nicht case-sensitiv. Verwenden SieBINARY
für case-sensitive Übereinstimmungen. - PostgreSQL: Unterstützt POSIX-Regex mit Operatoren wie
~
(case-sensitiv) und~*
(case-insensitive). - Oracle: Bietet umfangreiche Regex-Unterstützung mit Funktionen wie
REGEXP_LIKE
undREGEXP_REPLACE
. - SQL Server: Hat Regex-Funktionen in Version 2025 eingeführt, einschließlich
REGEXP_LIKE
undREGEXP_REPLACE
.
Fazit
Die Einbeziehung regulärer Ausdrücke in SQL-Abfragen verbessert die Möglichkeiten zur Datenabfrage und -manipulation und ermöglicht ein ausgefeiltes Pattern-Matching und eine Validierung direkt in der Datenbank. Das Verständnis und die Verwendung von Regex-Funktionen in verschiedenen SQL-Dialekten kann die Datenverarbeitungsaufgaben erheblich optimieren.
FAQs
Regex wird hauptsächlich für komplexes String-Matching und Validierung in SQL-Abfragen verwendet.
Die meisten großen SQL-Datenbanken unterstützen Regex, aber Syntax und Funktionen können unterschiedlich sein.
Es ermöglicht eine präzise Datenextraktion, -validierung und -manipulation direkt in der Datenbank.
Wir sind Leapcell, Ihre erste Wahl für das Hosting von Backend-Projekten.
Leapcell ist die Serverlose Plattform der nächsten Generation für Webhosting, asynchrone Aufgaben und Redis:
Multi-Sprachen-Unterstützung
- Entwickeln Sie mit Node.js, Python, Go oder Rust.
Stellen Sie unbegrenzt Projekte kostenlos bereit
- zahlen Sie nur für die Nutzung – keine Anfragen, keine Gebühren.
Unschlagbare Kosteneffizienz
- Pay-as-you-go ohne Leerlaufgebühren.
- Beispiel: 25 US-Dollar unterstützen 6,94 Millionen Anfragen bei einer durchschnittlichen Antwortzeit von 60 ms.
Optimierte Entwicklungserfahrung
- Intuitive Benutzeroberfläche für mühelose Einrichtung.
- Vollautomatische CI/CD-Pipelines und GitOps-Integration.
- Echtzeitmetriken und -protokollierung für verwertbare Erkenntnisse.
Mühelose Skalierbarkeit und hohe Leistung
- Automatische Skalierung zur einfachen Bewältigung hoher Parallelität.
- Kein operativer Overhead – konzentrieren Sie sich einfach auf den Aufbau.
Weitere Informationen finden Sie in der Dokumentation!
Folgen Sie uns auf X: @LeapcellHQ