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.


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow