Maison  >  Article  >  base de données  >  Comment référencez-vous les groupes de capture dans MySQL regex ?

Comment référencez-vous les groupes de capture dans MySQL regex ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-04 03:59:02290parcourir

How do you reference capture groups in MySQL regex?

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 :

  • La syntaxe $n est utilisée, où n est le numéro du groupe de capture (par exemple, $1 pour le premier groupe).

Exemple :

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

Cette expression régulière capture deux groupes :

  1. Les cinq premiers caractères utilisant le groupe de capture (.{5})
  2. Les caractères restants utilisant le groupe de capture (.*)

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!

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