Regular Expressions
Grupos de captura con nombre
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.