Maison > base de données > tutoriel mysql > Comment puis-je utiliser REGEXP_REPLACE pour modifier des données dans MySQL à l'aide d'expressions régulières ?

Comment puis-je utiliser REGEXP_REPLACE pour modifier des données dans MySQL à l'aide d'expressions régulières ?

Linda Hamilton
Libérer: 2024-12-27 13:04:11
original
637 Les gens l'ont consulté

How Can I Use REGEXP_REPLACE to Modify Data in MySQL Using Regular Expressions?

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)
Copier après la connexion

où :

  • col est la colonne que vous souhaitez modifier
  • regexp est le modèle d'expression régulière que vous souhaitez faire correspondre
  • replace est la chaîne avec laquelle vous souhaitez remplacer le motif correspondant

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()_ .\-]', '')
Copier après la connexion

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')
Copier après la connexion

Cela renverra ce qui suit :

over - stack - flow
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal