La fonction MySQL REGEXP_REPLACE() est utilisée pour la correspondance de modèles. Cette fonction recherche dans une chaîne un modèle d'expression régulière et remplace chaque occurrence du modèle avec la chaîne spécifiée qui correspond au modèle d'expression régulière donné. Si la correspondance est trouvée, elle renvoie la chaîne entière ainsi que les remplacements. Si aucune correspondance n’est trouvée, la chaîne renvoyée reste inchangée. Si l'expression, les modèles et la chaîne de remplacement sont NULL, la fonction renverra NULL.
REGEXP_REPLACE(), REPLACE(), et la TRADUCTION() fonctionner dans MySQL are fonctionne de la même manière, sauf que TRANSLATE nous permet d'effectuer plusieurs substitutions d'un seul caractère et que la fonction REPLACE remplace une chaîne entière par une autre chaîne, tandis que REGEXP_REPLACE recherche dans une chaîne un modèle d'expression régulière.
Syntaxe
Voici une syntaxe de base pour utiliser cette fonction dans MySQL :
REGEXP_REPLACE (expression, pattern, replace_string[, pos[, occurrence[, match_type]]])
Paramètre Explication
L'explication des paramètres de la fonction REGEXP_REPLACE() est :
expression: Il s'agit d'une chaîne d'entrée sur laquelle nous effectuerons une recherche via des paramètres et des fonctions d'expressions régulières.
script de chargement javascript
motifs: Il représente le modèle d'expression régulière pour une sous-chaîne.
remplacer_string : Il s'agit d'une sous-chaîne qui sera remplacée si la correspondance est trouvée.
La fonction REGEXP_INSTR() utilise divers paramètres facultatifs indiqués ci-dessous :
pos : Il est utilisé pour spécifier la position dans l'expression dans la chaîne pour démarrer la recherche. Si nous ne précisons pas ce paramètre, il démarrera à la position 1.
occurrence: Il est utilisé pour spécifier quelle occurrence d'une correspondance nous allons rechercher. Si nous ne précisons pas ce paramètre, toutes les occurrences sont remplacées.
Type de match: C'est une chaîne qui nous permet d'affiner l'expression régulière. Il utilise les caractères possibles suivants pour effectuer la correspondance.
numéro palindrome
Comprenons-le avec divers exemples.
Exemple
L'instruction suivante explique l'exemple de base de la fonction REGEXP_REPLACE dans MySQL.
mysql> SET @str = 'Javatpoint is a great websites'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'great', 'an educational') AS 'Replaceable String';
Voici le résultat :
Supposons que notre chaîne d'entrée contienne plusieurs correspondances dans la chaîne , alors cette fonction les remplacera tous. Voir les déclarations ci-dessous :
mysql> SET @str = 'BCA MCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'PGDCA') AS 'Replaceable String';
Voici le résultat :
Si la chaîne d'entrée et la chaîne remplaçable ne correspondent pas, les instructions renvoient la chaîne d'origine. Voir l'exemple ci-dessous :
mysql> SET @str = 'BCA MCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'MBA', 'PGDCA') AS 'Resultant String';
Voici le résultat :
alphabet aux chiffres
Si on veut remplacer la chaîne par précisant le poste pour lancer le remplacement, on peut utiliser la fonction REGEX_REPLACE comme suit :
mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'MCA', 2) AS 'Replaceable String';
Dans cette instruction, nous avons spécifié la position 2 pour démarrer le remplacement. En exécutant cette requête, nous obtiendrons le résultat ci-dessous où nous pouvons voir que la première position de la chaîne remplaçable n'est pas remplacée.
Nous savons que toutes les occurrences de la chaîne correspondante sont remplacées par défaut. Cependant, nous avons également la possibilité de spécifier l'occurrence spécifique pour remplacer la chaîne correspondante en utilisant le occurrence paramètre. Voir l'exemple ci-dessous :
mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'MCA', 2, 2) AS 'Replaceable String';
Dans cet exemple, la position de départ de la chaîne remplaçable est 2, qui intervient après le début de la première occurrence. Par conséquent, l'occurrence 2 est devenue l'occurrence 1 et l'occurrence 3 est devenue l'occurrence 2. Consultez le résultat ci-dessous :
Nous pouvons fournir un paramètre supplémentaire pour affiner l'expression régulière en utilisant les arguments du type de correspondance. Par exemple , nous pouvons l'utiliser pour vérifier si la correspondance est sensible à la casse ou inclure des terminateurs de ligne. Voir l'exemple ci-dessous où nous spécifions un sensible aux majuscules et minuscules et correspondance insensible à la casse :
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';
Voici le résultat :