Maison >base de données >tutoriel mysql >Comment référencer des groupes de capture dans les expressions régulières MySQL ?

Comment référencer des groupes de capture dans les expressions régulières MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-04 02:05:29552parcourir

How do I Reference Capture Groups in MySQL Regular Expressions?

Référencement des groupes de capture dans MySQL Regex

Lorsque vous travaillez avec des expressions régulières dans MySQL, il est essentiel de comprendre comment référencer des groupes de capture. Les groupes de capture vous permettent de faire correspondre et d'extraire des modèles spécifiques dans une chaîne.

Problème : impossible de référencer les groupes

Dans la question, l'utilisateur tente de capturer un caractère répétitif à l'aide de l'expression REGEXP '^ (.)1$'. Cependant, cette tentative ne parvient pas à référencer correctement le groupe capturé.

Solution

Dans MySQL 8 et versions ultérieures, vous pouvez référencer des groupes de capture en utilisant $1, $2, etc. L'expression suivante capture et remplace avec succès un modèle :

SELECT REGEXP_REPLACE('stackoverflow','(.{5})(.*)','');
-- "overflowstack"

Ici, (.{5}) capture une séquence de cinq caractères et (.*) capture tous les caractères restants. Le résultat est une chaîne avec les groupes capturés échangés : "overflowstack."

Pour MariaDB, le référencement des groupes de capture utilise \1, \2, etc. :

SELECT REGEXP_REPLACE('stackoverflow','(.{5})(.*)','\2\1');
-- "overflowstack"

N'oubliez pas, capturez les groupes vous permettent de cibler des sections spécifiques d'une chaîne, offrant une plus grande flexibilité pour la correspondance de modèles et la manipulation dans vos requêtes MySQL.

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!

Déclaration:
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