Buscar..


Sintaxis

  • Cree un grupo de captura con nombre (siendo X el patrón que desea capturar):

    (? 'nombre'X) (? X) (? PX)

  • Referencia a un grupo de captura con nombre:

    $ {nombre} \ {nombre} g \ {nombre}

Observaciones

Python y Java no permiten que múltiples grupos usen el mismo nombre.

Cómo se ve un grupo de captura con nombre

Dados los sabores, el grupo de captura nombrado puede tener este aspecto:

(?'name'X)
(?<name>X)
(?P<name>X)

Con X siendo el patrón que quieres capturar. Consideremos la siguiente cadena:

Érase una vez una niña bonita ...

Érase una vez un unicornio con sombrero ...

Érase una vez un barco con una bandera pirata ...

En el que quiero capturar el tema (en cursiva) de cada línea. Usaré la siguiente expresión .* was a (?<subject>[\w ]+)[.]{3} .

El resultado coincidente tendrá:

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`

Hacer referencia a un grupo de captura nombrado

Como puede (o no) saber, puede hacer referencia a un grupo de captura con:

$1

1 es el número de grupo.

De la misma manera, puede hacer referencia a un grupo de captura nombrado con:

${name}
\{name}
g\{name}

Tomemos el ejemplo anterior y reemplacemos las coincidencias con

The hero of the story is a ${subject}.

El resultado que obtendremos es:

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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow