Remplacement d'expressions régulières dans MySQL
Lorsque vous traitez de grands ensembles de données, il devient souvent nécessaire de nettoyer ou de modifier les données en fonction de modèles spécifiques. Dans MySQL, la tâche de remplacement de caractères ou de sous-chaînes dans une colonne à l'aide d'expressions régulières peut être réalisée à l'aide de la nouvelle fonction REGEXP_REPLACE, disponible dans MariaDB et MySQL 8.0.
Syntaxe REGEXP_REPLACE
La syntaxe de la fonction REGEXP_REPLACE est :
REGEXP_REPLACE(col, regexp, replace)
où :
Exemple Utilisation
Supposons que vous ayez un tableau avec une colonne nommée nom de fichier qui contient des noms de fichiers et que vous souhaitiez supprimer tous les caractères spéciaux (par exemple, chiffres, ponctuation) à l'exception des éléments suivants : a-z, A-Z, ( ,), _, ., et -. Vous pouvez utiliser la fonction REGEXP_REPLACE comme suit :
SELECT REGEXP_REPLACE(filename, '[^a-zA-Z0-9()_ .\-]', '')
Cela renverra une nouvelle colonne avec les noms de fichiers modifiés.
Regroupement
Le La fonction REGEXP_REPLACE prend également en charge le regroupement, vous permettant d'effectuer des remplacements plus complexes. Par exemple, vous pouvez utiliser le regroupement pour extraire des parties du motif correspondant et les utiliser dans la chaîne de remplacement.
SELECT REGEXP_REPLACE("stackoverflow", "(stack)(over)(flow)", '\2 - \1 - \3')
Cela renverra ce qui suit :
over - stack - flow
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!