MySQL unterstützt einen weiteren Mustervergleichsvorgang, der auf regulären Ausdrücken und dem Regexp-Operator basiert. Der folgende Artikel stellt Ihnen die regulären Ausdrücke (Regexp) von MySQL vor und stellt anhand von Beispielen kurz vor, wie Sie reguläre Ausdrücke (Regexp) in MySQL verwenden.
Eine kurze Einführung in reguläre MySQL-Ausdrücke (Regexp)
1 Es bietet leistungsstarke und flexible Matching-Muster, die uns bei der Implementierung leistungsstarker Suchdienstprogramme für Datenbanksysteme helfen können.
2. regexp ist der Operator, der beim Mustervergleich mit regulären Ausdrücken verwendet wird, und rlike ist ein Synonym.
3. Es unterstützt auch viele Metazeichen, die eine größere Flexibilität und Kontrolle beim Mustervergleich bieten.
4. Backslash wird als Escape-Zeichen verwendet. Wenn doppelte Backslashes verwendet werden, werden diese nur beim Mustervergleich berücksichtigt.
5. Die Groß-/Kleinschreibung wird nicht beachtet.
Die folgende Tabelle enthält reguläre Muster, die mit dem REGEXP-Operator verwendet werden können. 【Empfohlene verwandte Video-Tutorials: MySQL-Video-Tutorial】
Muster | Beschreibung (genauer gesagt, was übereinstimmen soll) | ||||
^ | entspricht dem Anfang der Zeichenfolge. | ||||
$ | entspricht der Endposition der Zeichenfolge. | ||||
. | entspricht jedem einzelnen Zeichen außer „n“. | ||||
[...] | entspricht jedem darin enthaltenen Zeichen. | ||||
[^...] | entspricht jedem Zeichen, das nicht enthalten ist. | ||||
? | entspricht keinem oder einem Unterausdruck (Zeichenfolge) davor. | ||||
* | stimmt mit null oder mehr Unterausdrücken (Zeichenfolgen) davor überein. | ||||
+ | stimmt mit einem oder mehreren Unterausdrücken (Strings) davor überein. | ||||
[abc] | entspricht einem der in eckigen Klammern aufgeführten Zeichen. | ||||
[^abc] | entspricht allen Zeichen, die nicht in eckigen Klammern aufgeführt sind. | ||||
[A-Z] | entspricht jedem Großbuchstaben. | ||||
[a-z] | entspricht jedem Kleinbuchstaben. | ||||
[0-9] | entspricht einer beliebigen Zahl von 0 bis 9. | ||||
[[:<:]] | entspricht dem Anfang eines Wortes. | ||||
[[:>:]] | entspricht dem Ende eines Wortes. | ||||
[:class:] | entspricht Zeichenklassen, d. h. [:alpha:] entspricht Buchstaben, [:space:] entspricht Leerzeichen, [:punct: ] entspricht der Zeichensetzung, [:upper:] entspricht den Großbuchstaben. | ||||
p1|p2|p3 | entspricht jedem Muster, p1 oder p2 oder p3 | ||||
{n} | Passen Sie n Unterausdrücke an, die vor n Elementen stehen | ||||
{m,n} | Passen Sie n Unterausdrücke an, die mit m mit den vorhergehenden Elementen übereinstimmen |
Verwendungsbeispiel:
Im Folgenden wird anhand eines einfachen Beispiels die Verwendung regulärer MySQL-Ausdrücke (Regexp) vorgestellt.
1. Passen Sie den Anfang der Zeichenfolge an (^):
Passen Sie alle Daten an, deren Namensfeld mit „sa“ beginnt, zum Beispiel: Sample-sam, samarth .
SELECT name FROM student_tbl WHERE name REGEXP '^sa';
2. Passen Sie das Ende der Zeichenfolge an ($):
Passen Sie alle Daten an, deren Namensfeld mit „on“ endet, zum Beispiel: norton, merton.
SELECT name FROM student_tbl WHERE name REGEXP 'on$';
3. Passen Sie null oder einen Unterausdruck (?) der Zeichenfolge davor an:
Passen Sie alle Daten an, deren Titelfeld „com“ enthält, zum Beispiel: Comedy , romantische Komödie.
SELECT title FROM movies_tbl WHERE title REGEXP 'com?';
4. Entspricht einem beliebigen Muster p1 oder p2 oder p3 (p1 | p2 | p3):
Entspricht allen Namen, deren Namensfeld „be“ oder „ae“ enthält ' Daten, zum Beispiel: Abel, Baer.
SELECT name FROM student_tbl WHERE REGEXP 'be|ae' ;
5. Übereinstimmung mit allen in eckigen Klammern aufgeführten Zeichen ([abc]):
Übereinstimmung mit allen Namen, deren Namensfeld „j“ oder „z“ enthält. zum Beispiel: Lorentz, Rajs.
SELECT name FROM student_tbl WHERE REGEXP '[jz]' ;
6. Übereinstimmung mit einem beliebigen Kleinbuchstaben ([a-z]) zwischen „a“ und „z“ ([a-z] und (.)):
Übereinstimmung alle Zeichenfolgedaten, bei denen die erste Ziffer im Namensfeld Buchstaben im Bereich von „b“ und „g“ enthält, die zweite Ziffer ein beliebiges Zeichen enthält und die dritte Ziffer den Buchstaben „a“ enthält, zum Beispiel: Tobias, sewall .
Entspricht jedem einzelnen Zeichen (.)
SELECT name FROM student_tbl WHERE REGEXP '[b-g].[a]' ;
7. Entspricht jedem Zeichen, das nicht in eckigen Klammern steht ([^ abc]):
Entspricht alle Namen, die weder „j“ noch „z“ enthalten. Beispiel: Nerton, Sewall.
SELECT name FROM student_tbl WHERE REGEXP '[^jz]' ;
8. Passen Sie die Teilzeichenfolge am Ende des Wortes [[:>:]] an.
Passen Sie alle Daten an, die mit dem Zeichen „ack“ enden Titelfeld, Beispiel: Schwarz.
SELECT title FROM movies_tbl WHERE REGEXP 'ack[[:>:]]';
9. Passen Sie die Teilzeichenfolge am Anfang des Wortes an [[:<:]]
Passen Sie alle Daten an, die mit dem Zeichen „für“ beginnen Titelfeld, Beispiel: Sarah Marshal vergessen.
SELECT title FROM movies_tbl WHERE title REGEXP '[[:<:]]for';
10. Übereinstimmung mit der Zeichenklasse [:class:]:
d. h. [:lower:] – Kleinbuchstaben, [:digit:] – numerische Zeichen usw .
Entspricht allen Daten, die im Titelfeld nur alphabetische Zeichen enthalten, zum Beispiel: Stranger Things, Avengers.
SELECT title FROM movies_tbl WHERE REGEXP '[:alpha:]' ;
Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird. Weitere spannende Inhalte finden Sie in den entsprechenden Tutorial-Kolumnen auf der chinesischen PHP-Website! ! !
Das obige ist der detaillierte Inhalt vonWie verwendet MySQL reguläre Ausdrücke? (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!