logo

MySQL REGEXP_REPLACE()-Funktion

Für den Mustervergleich wird die MySQL-Funktion REGEXP_REPLACE() verwendet. Diese Funktion Durchsucht eine Zeichenfolge nach einem regulären Ausdrucksmuster und ersetzt jedes Vorkommen des Musters mit der angegebenen Zeichenfolge, die dem angegebenen regulären Ausdrucksmuster entspricht. Wenn die Übereinstimmung gefunden wird, wird die gesamte Zeichenfolge zusammen mit den Ersetzungen zurückgegeben. Wenn keine Übereinstimmung gefunden wird, bleibt die zurückgegebene Zeichenfolge unverändert. Wenn der Ausdruck, die Muster und die Ersetzungszeichenfolge NULL sind, gibt die Funktion NULL zurück.

REGEXP_REPLACE(), REPLACE(), Und die TRANSLATE() Funktion in MySQL Sie funktionieren auf die gleiche Weise, mit der Ausnahme, dass TRANSLATE es uns ermöglicht, mehrere einzelne Zeichen zu ersetzen, und die REPLACE-Funktion eine ganze Zeichenfolge durch eine andere Zeichenfolge ersetzt, während REGEXP_REPLACE eine Zeichenfolge nach einem regulären Ausdrucksmuster durchsucht.

Syntax

Das Folgende ist eine grundlegende Syntax zur Verwendung dieser Funktion in MySQL:

 REGEXP_REPLACE (expression, pattern, replace_string[, pos[, occurrence[, match_type]]]) 

Parametererklärung

Die Erklärung der REGEXP_REPLACE()-Funktionsparameter lautet:

Ausdruck: Es handelt sich um eine Eingabezeichenfolge, anhand derer wir die Suche nach Parametern und Funktionen regulärer Ausdrücke durchführen.

Muster: Es stellt das reguläre Ausdrucksmuster für einen Teilstring dar.

ersetzen_string: Es handelt sich um eine Teilzeichenfolge, die ersetzt wird, wenn eine Übereinstimmung gefunden wird.

Java-Farbcodes

Die Funktion REGEXP_INSTR() verwendet verschiedene optionale Parameter, die unten angegeben sind:

Pos: Es wird verwendet, um die Position im Ausdruck innerhalb der Zeichenfolge anzugeben, an der die Suche gestartet werden soll. Wenn wir diesen Parameter nicht angeben, beginnt er an Position 1.

Auftreten: Es wird verwendet, um anzugeben, nach welchem ​​Vorkommen einer Übereinstimmung wir suchen möchten. Wenn wir diesen Parameter nicht angeben, werden alle Vorkommen ersetzt.

match_type: Es ist eine Zeichenfolge, die es uns ermöglicht, den regulären Ausdruck zu verfeinern. Für den Abgleich werden die folgenden möglichen Zeichen verwendet.

    C:Es stellt einen Abgleich dar, bei dem die Groß-/Kleinschreibung beachtet wird.ich:Es handelt sich um einen Abgleich ohne Berücksichtigung der Groß- und Kleinschreibung.M:Es stellt einen Mehrzeilenmodus dar, der Zeilenabschlüsse innerhalb der Zeichenfolge zulässt. Standardmäßig gleicht diese Funktion Zeilenabschlusszeichen am Anfang und Ende der Zeichenfolge ab.N:Es wird verwendet, um die zu ändern. (Punkt)-Zeichen zur Übereinstimmung mit Zeilenabschlusszeichen.In:Es stellt reine Unix-Zeilenenden dar.

Lassen Sie es uns anhand verschiedener Beispiele verstehen.

Beispiel

Die folgende Anweisung erläutert das grundlegende Beispiel der REGEXP_REPLACE-Funktion in MySQL.

 mysql> SET @str = 'Javatpoint is a great websites'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'great', 'an educational') AS 'Replaceable String'; 

Hier ist die Ausgabe:

MySQL REGEXP_REPLACE()-Funktion

Angenommen, unsere Eingabezeichenfolge enthält mehrere Übereinstimmungen innerhalb der Zeichenfolge , dann ersetzt diese Funktion alle. Siehe die folgenden Aussagen:

 mysql> SET @str = 'BCA MCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'PGDCA') AS 'Replaceable String'; 

Hier ist die Ausgabe:

MySQL REGEXP_REPLACE()-Funktion

Wenn die Eingabezeichenfolge und die ersetzbare Zeichenfolge keine Übereinstimmung aufweisen, geben die Anweisungen die ursprüngliche Zeichenfolge zurück. Sehen Sie sich das folgende Beispiel an:

 mysql> SET @str = 'BCA MCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'MBA', 'PGDCA') AS 'Resultant String'; 

Hier ist die Ausgabe:

wichtig
MySQL REGEXP_REPLACE()-Funktion

Wenn wir die Zeichenfolge durch ersetzen möchten Angabe der Position Um den Austausch zu starten, können wir die Funktion REGEX_REPLACE wie folgt verwenden:

 mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'MCA', 2) AS 'Replaceable String'; 

In dieser Anweisung haben wir die Position 2 angegeben, um mit der Ersetzung zu beginnen. Wenn wir diese Abfrage ausführen, erhalten wir die folgende Ausgabe, in der wir sehen können, dass die erste Position der ersetzbaren Zeichenfolge nicht ersetzt wird.

MySQL REGEXP_REPLACE()-Funktion

Wir wissen, dass alle Vorkommen der passenden Zeichenfolge standardmäßig ersetzt werden. Wir haben jedoch auch die Möglichkeit, das spezifische Vorkommen zum Ersetzen der übereinstimmenden Zeichenfolge mithilfe von anzugeben Auftreten Parameter. Sehen Sie sich das folgende Beispiel an:

 mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'MCA', 2, 2) AS 'Replaceable String'; 

In diesem Beispiel ist die Startposition der ersetzbaren Zeichenfolge 2, die nach Beginn des ersten Vorkommens kam. Daher wurde Vorkommen 2 zu Vorkommen 1 und Vorkommen 3 zu Vorkommen 2. Siehe die folgende Ausgabe:

MySQL REGEXP_REPLACE()-Funktion

Wir können einen zusätzlichen Parameter bereitstellen, um den regulären Ausdruck mithilfe der Match-Type-Argumente zu verfeinern. Zum Beispiel können wir damit überprüfen, ob bei der Übereinstimmung die Groß-/Kleinschreibung beachtet wird oder ob Zeilenabschlüsse enthalten sind. Sehen Sie sich das folgende Beispiel an, in dem wir a angeben Groß- und Kleinschreibung beachten Und Übereinstimmung ohne Berücksichtigung der Groß- und Kleinschreibung:

 mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'bba', 'MCA', 1, 0, 'c') AS ' Case-Sensitive', REGEXP_REPLACE(@str, 'bba', 'MCA', 1, 0, 'i') AS ' Case-Insensitive'; 

Hier ist die Ausgabe:

MySQL REGEXP_REPLACE()-Funktion