In MySQL der REGEXP_LIKE() Funktion wird verwendet, um festzustellen, ob ein String mit einem regulären Ausdruck übereinstimmt.
Die Funktion gibt 1 zurück wenn die Zeichenfolge mit dem bereitgestellten regulären Ausdruck übereinstimmt, und 0 wenn nicht.
Syntax
Die Syntax lautet wie folgt:
REGEXP_LIKE(expr, pat[, match_type])
Wobei expr ist die Eingabezeichenfolge und pat ist der reguläre Ausdruck, für den Sie die Zeichenfolge testen.
Der optionale match_type Argument ermöglicht es Ihnen, den regulären Ausdruck zu verfeinern. Sie können beispielsweise match_type verwenden Groß-/Kleinschreibung angeben oder nicht.
Beispiel 1 – Grundlegende Verwendung
Hier ist ein einfaches Beispiel:
SELECT REGEXP_LIKE('Cat', '.*') Result; Ergebnis:
+--------+ | Result | +--------+ | 1 | +--------+
In diesem Fall gibt unser regulärer Ausdruck ein beliebiges Zeichen in einer beliebigen Sequenz an, sodass wir natürlich eine Übereinstimmung erhalten. Die Funktion gibt 1 zurück um eine Übereinstimmung anzuzeigen.
Beispiel 2 – Keine Übereinstimmung
Hier ist ein Beispiel, bei dem die Eingabezeichenfolge nicht mit dem regulären Ausdruck übereinstimmt:
SELECT REGEXP_LIKE('Cat', 'b+') Result; Ergebnis:
+--------+ | Result | +--------+ | 0 | +--------+
In diesem Fall gibt unser regulärer Ausdruck an, dass es einen oder mehrere b geben sollte Zeichen in beliebiger Reihenfolge. Unser Eingabestring enthält dieses Zeichen nicht und daher 0 zurückgegeben wird.
Beispiel 3 – Übereinstimmung mit dem Anfang einer Zeichenfolge
Hier ist ein Beispiel, bei dem der reguläre Ausdruck angibt, dass die Zeichenfolge mit bestimmten Zeichen beginnen muss:
SELECT REGEXP_LIKE('Cat', '^Ca') Result; Ergebnis:
+--------+ | Result | +--------+ | 1 | +--------+
Und Folgendes passiert, wenn es keine Übereinstimmung gibt:
SELECT REGEXP_LIKE('Cat', '^Da') Result; Ergebnis:
+--------+ | Result | +--------+ | 0 | +--------+
Beispiel 4 – Eine Datenbankabfrage
Diese Funktion kann im WHERE verwendet werden -Klausel von Datenbankabfragen, um nur die Zeilen zurückzugeben, die das Muster enthalten:
SELECT AlbumId, AlbumName FROM Albums WHERE REGEXP_LIKE(AlbumName, '^Power');
Ergebnis:
+---------+------------+ | AlbumId | AlbumName | +---------+------------+ | 1 | Powerslave | | 2 | Powerage | +---------+------------+
Hier ist die vollständige Tabelle:
SELECT AlbumId, AlbumName FROM Albums;
Ergebnis:
+---------+--------------------------+ | AlbumId | AlbumName | +---------+--------------------------+ | 1 | Powerslave | | 2 | Powerage | | 3 | Singing Down the Lane | | 4 | Ziltoid the Omniscient | | 5 | Casualties of Cool | | 6 | Epicloud | | 7 | Somewhere in Time | | 8 | Piece of Mind | | 9 | Killers | | 10 | No Prayer for the Dying | | 11 | No Sound Without Silence | | 12 | Big Swing Face | | 13 | Blue Night | | 14 | Eternity | | 15 | Scandinavia | | 16 | Long Lost Suitcase | | 17 | Praise and Blame | | 18 | Along Came Jones | | 19 | All Night Wrong | | 20 | The Sixteen Men of Tain | +---------+--------------------------+
Beispiel 5 – Der match_type Argument
Sie können ein zusätzliches Argument angeben, um den Übereinstimmungstyp zu bestimmen. Auf diese Weise können Sie beispielsweise angeben, ob bei der Übereinstimmung zwischen Groß- und Kleinschreibung unterschieden wird, ob Zeilenabschlüsse eingefügt werden sollen usw.
Hier ist ein Beispiel für die Angabe einer Übereinstimmung mit Berücksichtigung der Groß- und Kleinschreibung und einer Übereinstimmung ohne Berücksichtigung der Groß-/Kleinschreibung:
SELECT
REGEXP_LIKE('Cat', '^ca', 'c') 'Case-Sensitive',
REGEXP_LIKE('Cat', '^ca', 'i') 'Case-Insensitive'; Ergebnis:
+----------------+------------------+ | Case-Sensitive | Case-Insensitive | +----------------+------------------+ | 0 | 1 | +----------------+------------------+
Der match_type Das Argument kann die folgenden Zeichen enthalten:
c- Groß-/Kleinschreibung beachten.
i- Übereinstimmung ohne Berücksichtigung der Groß-/Kleinschreibung.
m- Mehrzeiliger Modus. Zeilenabschlusszeichen innerhalb der Zeichenfolge erkennen. Das Standardverhalten besteht darin, Zeilenabschlusszeichen nur am Anfang und am Ende des Zeichenfolgenausdrucks abzugleichen.
n- Der
.Zeichen stimmt mit Zeilenabschlusszeichen überein. Der Standardwert ist.Anpassung, um am Ende einer Zeile zu stoppen. u- Nur Unix-Zeilenenden. Nur das Newline-Zeichen wird durch den
.als Zeilenende erkannt ,^, und$Übereinstimmungsoperatoren.
Weitere Beispiele
Weitere Beispiele für grundlegende reguläre Ausdrücke finden Sie unter MySQL REGEXP-Beispiele. REGEXP ist ein Synonym für REGEXP_LIKE() , sodass Sie die Beispiele austauschbar verwenden können.
Siehe auch Reguläre Ausdruckssyntax in der MySQL-Dokumentation.