Chaque paire de parenthèses (
... )
où le premier caractère est pas un ?
* est un « groupe de capture », qui place son résultat dans $1
, $2
, $3
, etc qui peut être utilisé dans le modèle de remplacement.
Vous pouvez également voir la même chose que \1
, \2
, \3
dans d'autres moteurs regex, (ou bien dans l'expression originale parfois, pour la répétition)
Ceux-ci sont appelés « arrières », parce qu'ils font généralement référence retour à (une partie antérieure) de l'expression.
(* Le ?
indique diverses formes de comportement particulier, y compris un groupe non-capture qui est (?:
... )
et simplement des groupes sans capturer.)
Dans votre exemple précis, le 1 $ sera le groupe (^|)
qui est "position du début de la chaîne (largeur nulle), ou un espace unique". Donc, en remplaçant l'expression entière par cela, vous supprimez la variable theClass
et éventuellement un espace après celle-ci. (L'expression de fermeture (|$)
est l'inverse - un espace ou la position de fin de chaîne - et puisque sa valeur est utilisée, aurait pu être non-capture avec (?: |$)
à la place.)
Espérons que cela explique tout va bien - laisser Je sais si tu veux plus d'infos.
Aussi, voici un peu de lecture plus loin du site regular-expressions.info:
Merci, c'est clair maintenant. J'ai eu un peu de difficulté à comprendre ce que vous vouliez dire par "chaque paire de parenthèses", mais cela s'applique au motif regex.Si le motif regex contient une paire de parenthèses, il s'agit d'un groupe de capture. –