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.
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é.
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!