logo

MySQL REGEXP_REPLACE() Functie

De MySQL REGEXP_REPLACE() functie wordt gebruikt voor patroonmatching. Deze functie zoekt in een string naar een reguliere-expressiepatroon en vervangt elk exemplaar van het patroon met de opgegeven tekenreeks die overeenkomt met het gegeven reguliere expressiepatroon. Als de overeenkomst wordt gevonden, wordt de hele tekenreeks geretourneerd, samen met de vervangingen. Als er geen overeenkomst wordt gevonden, blijft de geretourneerde string ongewijzigd. Als de expressie, patronen en vervangende tekenreeks NULL zijn, retourneert de functie NULL.

verwijder laatste commit git

REGEXP_REPLACE(), VERVANGEN(), En de VERTALEN() functie in MySQL are werkt hetzelfde, behalve dat de TRANSLATE ons in staat stelt om meerdere vervangingen van één teken uit te voeren en de REPLACE-functie een hele string vervangt door een andere string, terwijl REGEXP_REPLACE een string doorzoekt naar een reguliere expressiepatroon.

Syntaxis

Het volgende is een basissyntaxis om deze functie in MySQL te gebruiken:

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

Parameterverklaring

De uitleg van de REGEXP_REPLACE() functieparameters is:

uitdrukking: Het is een invoertekenreeks waarop we zullen zoeken via parameters en functies van reguliere expressies.

patronen: Het vertegenwoordigt het reguliere expressiepatroon voor een subtekenreeks.

vervang_string: Het is een subtekenreeks die wordt vervangen als de overeenkomst wordt gevonden.

De functie REGEXP_INSTR() gebruikt verschillende optionele parameters die hieronder worden gegeven:

pos: Het wordt gebruikt om de positie in de expressie binnen de tekenreeks te specificeren om de zoekopdracht te starten. Als we deze parameter niet specificeren, begint deze op positie 1.

Java-polymorfisme

voorkomen: Het wordt gebruikt om aan te geven naar welk exemplaar van een overeenkomst we gaan zoeken. Als we deze parameter niet opgeven, worden alle exemplaren vervangen.

match_type: Het is een string waarmee we de reguliere expressie kunnen verfijnen. Het gebruikt de volgende mogelijke tekens om matching uit te voeren.

    C:Het vertegenwoordigt een hoofdlettergevoelige matching.i:Het vertegenwoordigt een hoofdletterongevoelige matching.M:Het vertegenwoordigt een modus met meerdere regels die lijnafsluitingen binnen de string mogelijk maakt. Standaard matcht deze functie regelafsluitingen aan het begin en einde van de tekenreeks.N:Het wordt gebruikt om de . (punt)teken dat overeenkomt met regelafsluitingen.in:Het vertegenwoordigt regeleinden die alleen voor Unix beschikbaar zijn.

Laten we het begrijpen met verschillende voorbeelden.

Voorbeeld

De volgende verklaring legt het basisvoorbeeld uit van de REGEXP_REPLACE-functie 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 is de uitvoer:

MySQL REGEXP_REPLACE() Functie

Stel dat onze invoerreeks bevat meerdere overeenkomsten binnen de string , dan zal deze functie ze allemaal vervangen. Zie de onderstaande uitspraken:

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

Hier is de uitvoer:

willekeurig nummer c-code
MySQL REGEXP_REPLACE() Functie

Als de invoertekenreeks en de vervangbare tekenreeks niet overeenkomen, retourneren de instructies de oorspronkelijke tekenreeks. Zie het onderstaande voorbeeld:

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

Hier is de uitvoer:

MySQL REGEXP_REPLACE() Functie

Als we de string willen vervangen door het opgeven van de positie om de vervanging te starten, kunnen we de REGEX_REPLACE-functie als volgt gebruiken:

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

In deze verklaring hebben we de positie gespecificeerd als 2 om de vervanging te starten. Als we deze query uitvoeren, krijgen we de onderstaande uitvoer waarin we kunnen zien dat de eerste positie van de vervangbare string niet is vervangen.

MySQL REGEXP_REPLACE() Functie

We weten dat alle exemplaren van de overeenkomende tekenreeks standaard worden vervangen. We hebben echter ook een optie om de specifieke gebeurtenis op te geven voor het vervangen van de overeenkomende tekenreeks door gebruik te maken van de voorkomen parameter. Zie het onderstaande voorbeeld:

java tekenreeks
 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 dit voorbeeld is de startpositie van de vervangbare string 2, die kwam nadat de eerste gebeurtenis was gestart. Daarom werd gebeurtenis 2 gebeurtenis 1 en gebeurtenis 3 werd gebeurtenis 2. Zie de onderstaande uitvoer:

MySQL REGEXP_REPLACE() Functie

We kunnen een extra parameter opgeven om de reguliere expressie te verfijnen door gebruik te maken van de matchtype-argumenten. Bijvoorbeeld , kunnen we het gebruiken om te verifiëren of de overeenkomst hoofdlettergevoelig is of regelafsluitingen bevat. Zie het onderstaande voorbeeld waarin we a specificeren hoofdlettergevoelig En hoofdletterongevoelige overeenkomst:

 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 is de uitvoer:

MySQL REGEXP_REPLACE() Functie