MariaDB - Regulärer Ausdruck

Neben dem in LIKE-Klauseln verfügbaren Mustervergleich bietet MariaDB über den REGEXP-Operator einen auf regulären Ausdrücken basierenden Abgleich. Der Operator führt einen Mustervergleich für einen Zeichenfolgenausdruck basierend auf einem bestimmten Muster durch.

In MariaDB 10.0.5 wurden reguläre PCRE-Ausdrücke eingeführt, die den Umfang der Zuordnung zu Bereichen wie rekursiven Mustern, Vorausschau-Aussagen und vielem mehr erheblich erweitern.

Überprüfen Sie die Verwendung der unten angegebenen Standard-REGEXP-Operatorsyntax.

SELECT column FROM table_name WHERE column REGEXP '[PATTERN]';

REGEXP gibt 1 für eine Musterübereinstimmung oder 0 zurück, wenn keine vorhanden ist.

Eine Option für das Gegenteil besteht in Form von NOT REGEXP. MariaDB bietet auch Synonyme für REGEXP und NOT REGEXP, RLIKE und NOT RLIKE an, die aus Kompatibilitätsgründen erstellt wurden.

Das verglichene Muster kann eine Literalzeichenfolge oder etwas anderes wie eine Tabellenspalte sein. In Zeichenfolgen wird die C-Escape-Syntax verwendet, also verdoppeln Sie alle "\" - Zeichen. REGEXP unterscheidet auch nicht zwischen Groß- und Kleinschreibung, mit Ausnahme von Binärzeichenfolgen.

Eine Tabelle möglicher Muster, die verwendet werden können, ist unten angegeben -

Sr.Nr. Muster & Beschreibung
1

^

Es entspricht dem Anfang der Zeichenfolge.

2

$

Es entspricht dem Ende der Zeichenfolge.

3

.

Es entspricht einem einzelnen Zeichen.

4

[...]

Es entspricht jedem Zeichen in den Klammern.

5

[^...]

Es stimmt mit allen Zeichen überein, die nicht in den Klammern aufgeführt sind.

6

p1|p2|p3

Es entspricht einem der Muster.

7

*

Es entspricht 0 oder mehr Instanzen des vorhergehenden Elements.

8

+

Es entspricht einer oder mehreren Instanzen des vorhergehenden Elements.

9

{n}

Es entspricht n Instanzen des vorhergehenden Elements.

10

{m,n}

Es werden m bis n Instanzen des vorhergehenden Elements abgeglichen.

Überprüfen Sie die unten angegebenen Mustervergleichsbeispiele -

Produkte beginnend mit "pr" -

SELECT name FROM product_tbl WHERE name REGEXP '^pr';

Produkte, die mit "na" enden -

SELECT name FROM product_tbl WHERE name REGEXP 'na$';

Produkte, die mit einem Vokal beginnen -

SELECT name FROM product_tbl WHERE name REGEXP '^[aeiou]';