Regular Expressions
Groupes de capture nommés
Recherche…
Syntaxe
Créez un groupe de capture nommé (
X
étant le modèle que vous souhaitez capturer):(? 'nom'X) (? X) (? PX)
Référencez un groupe de capture nommé:
$ {nom} \ {nom} g \ {nom}
Remarques
Python et Java n'autorisent pas plusieurs groupes à utiliser le même nom.
À quoi ressemble un groupe de capture nommé
Compte tenu des saveurs, le groupe de capture nommé peut ressembler à ceci:
(?'name'X)
(?<name>X)
(?P<name>X)
Avec X
étant le motif que vous souhaitez capturer. Considérons la chaîne suivante:
Il était une fois une jolie petite fille ...
Il était une fois une licorne avec un chapeau ...
Il était une fois un bateau avec un drapeau de pirate ...
Dans lequel je veux capturer le sujet (en italique) de chaque ligne. J'utiliserai l'expression suivante .* was a (?<subject>[\w ]+)[.]{3}
.
Le résultat correspondant tiendra:
MATCH 1
subject [29-47] `pretty little girl`
MATCH 2
subject [80-99] `unicorn with an hat`
MATCH 3
subject [132-155] `boat with a pirate flag`
Référence à un groupe de capture nommé
Comme vous le savez (ou non), vous pouvez référencer un groupe de capture avec:
$1
1
étant le numéro de groupe.
De la même manière, vous pouvez référencer un groupe de capture nommé avec:
${name}
\{name}
g\{name}
Prenons l'exemple précédent et remplaçons les correspondances avec
The hero of the story is a ${subject}.
Le résultat que nous obtiendrons est:
The hero of the story is a pretty little girl.
The hero of the story is a unicorn with an hat.
The hero of the story is a boat with a pirate flag.