Référencement de groupe de capture Regex dans MySQL
Dans MySQL, le référencement d'un groupe de capture dans une expression régulière peut être réalisé en utilisant la méthode suivante :
Syntaxe :
REGEXP_REPLACE(string, pattern, replacement)
Pour MySQL 8 :
Les groupes de capture peuvent être créés à l'aide de parenthèses (). Pour faire référence à un groupe de capture, utilisez $1, $2, etc.
<code class="sql">SELECT REGEXP_REPLACE('stackoverflow','(.{5})(.*)',''); -- Output: "overflowstack"</code>
Pour MariaDB :
Les groupes de capture dans MariaDB sont gérés différemment. Les références arrière utilisent \1, \2, etc.
<code class="sql">SELECT REGEXP_REPLACE('stackoverflow','(.{5})(.*)','\2\1'); -- Output: "overflowstack"</code>
Exemple :
L'expression régulière ^(.)1$ vérifie s'il y a deux identiques caractères au début de la chaîne, mais cette syntaxe ne fonctionnera pas dans MySQL. Utilisez plutôt ce qui suit :
<code class="sql">SELECT REGEXP_REPLACE('aabbcc','^(.)(.)$',''); -- Output: "b"</code>
Cette expression régulière fait correspondre les deux premiers caractères de la chaîne (a et a) en tant que deux groupes de capture et récupère le deuxième caractère (b).
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!