English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQL-Reguläre Ausdrücke

In den vorherigen Kapiteln haben wir erfahren, dass MySQL durch LIKE ...% um eine vage Übereinstimmung durchzuführen.

MySQL unterstützt ebenfalls andere reguläre Ausdrücke, MySQL verwendet den REGEXP-Operator für reguläre Ausdrücke.

Wenn Sie PHP oder Perl verstehen, ist die Verwendung sehr einfach, da die regulären Ausdrücke von MySQL ähnlich sind wie in diesen Skripten.

Die in der Tabelle aufgeführten regulären Muster können im REGEXP-Operator verwendet werden.

MusterBeschreibung
^Matche den Anfang der Eingabezeichenkette. Wenn die Multiline-Eigenschaft des RegExp-Objekts gesetzt ist, matcht ^ auch die Position nach '\n' oder '\r'.
$Matche das Ende der Eingabezeichenkette. Wenn die Multiline-Eigenschaft des RegExp-Objekts gesetzt ist, matcht $ auch die Position vor '\n' oder '\r'.
.Matche beliebiges einzelnes Zeichen außer "\n". Um beliebiges Zeichen einschließlich '\n' zu matchen, verwende ein Muster wie '[.\n]'.
[...]Zeichensätze. Matche beliebiges enthaltenes Zeichen. Zum Beispiel, '[abc]' kann das 'a' in "plain" matchen.
[^...]Negative Zeichensätze. Matche beliebige nicht enthaltene Zeichen. Zum Beispiel, '[^abc]' kann das 'p' in "plain" matchen.
p1|p2|p3Matche p1 oder p2 oder p3。 Zum Beispiel, 'z|food' kann "z" oder "food" matchen. '(z|f)ood' matcht "zood" oder "food".
*Matche den vorherigen Unter- Ausdruck nullmal oder mehrmals. Zum Beispiel, zo* Kann "z" und "zoo" matchen.* Ist äquivalent zu {0,}。
+Matche das vorherige Unter- Ausdruck einmal oder mehrmals. Zum Beispiel, 'zo+Das Zeichen ' ' kann "zo" und "zoo" matchen, aber nicht "z".+ Ist äquivalent zu {1,}。
{n}n ist eine nichtnegative Ganzzahl. Matche festgelegte n-mal. Zum Beispiel, 'o{2Die Zeichenkette 'n,m' kann den 'o' in "Bob" nicht matchen, aber kann die beiden 'o' in "food" matchen.
{n,m}m und n sind nichtnegative Ganzzahlen, wobei n <= m. Mindestmatchen n-mal und maximale Matchen m-mal.

Online-Beispiel

Nachdem Sie die Anforderungen an die regulären Ausdrücke verstanden haben, können wir SQL-Anweisungen mit regulären Ausdrücken schreiben, die auf unsere Anforderungen zugeschnitten sind. Nachfolgend stellen wir einige kurze Beispiele (Tabellenname: person_tbl) zur Verfügung, um unser Verständnis zu vertiefen:

Suchen Sie alle Daten, bei denen das Feld 'name' mit dem String 'st' beginnt:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';

Suchen Sie alle Daten, bei denen das Feld 'name' mit dem String 'ok' endet:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';

Suchen Sie alle Daten, bei denen das Feld 'name' den String 'mar' enthält:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';

Suchen Sie alle Daten, bei denen das Feld 'name' mit einem Vokal beginnt oder mit dem String 'ok' endet:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';