Capturer des groupes dans MySQL Regex
Lors de l'utilisation d'expressions régulières (regex) dans MySQL, il est souvent nécessaire d'extraire des parties spécifiques du texte correspondant en groupes de capture. Cependant, contrairement à d'autres langages, MySQL ne fournit pas de syntaxe directe pour référencer ces groupes dans les opérations regex ultérieures.
Question :
Comment les groupes de capture peuvent-ils être référencés dans une regex MySQL ?
Réponse :
Dans MySQL, les groupes de capture sont référencés à l'aide d'une notation spéciale. Pour les versions MySQL 8 et supérieures :
Exemple :
SELECT REGEXP_REPLACE('stackoverflow','(.{5})(.*)',''); -- Returns "overflowstack"
Cette expression régulière capture deux groupes :
La fonction REGEXP_REPLACE() remplace ensuite la chaîne d'origine par le deuxième groupe suivi du premier groupe, inversant ainsi l'ordre du premier cinq caractères.
Remarque : Pour MariaDB, la notation pour référencer les captures est légèrement différente, utilisant 1, 2, etc. au lieu de $1, $2.
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!