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.
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:
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:
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
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.
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:
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: