*   >> Lectura Educación Artículos >> science >> programación

Regex Agrupaciones en Perl

ener cualquier número menor. ¿Qué pasa con anidadas Grupos Considere el siguiente código: use strict; si ("contadores, contador y libro van de la mano." = ~ /libro (arquero (s |) |) /) {print "Igualados \\ n"; } Else {print "No Coincide \\ n"; } Print "\\ $ 1 es:", $ 1, "\\ n"; print "\\ $ 2 es:", $ 2, "\\ n"; print "\\ $ 3 es:", $ 3, "\\ n"; El es la salida del código anterior: $ 1 es: guardianes $ 2 es: s $ 3 es: El patrón coincidiría "contables", "contable" o "libros". Sin embargo, tenemos dos grupos; uno dentro del otro. Son estos dos grupos que pueden ser recordadas.

Es por eso que para la salida, $ 3 no tiene nada que ver, ya que nada fue asignado a la misma. El grupo externo en el patrón es el gato (s |) y el grupo interno es (s |). El grupo exterior corresponde a "gatos" en "gatos domésticos". El grupo interior corresponde a "s" al final de los "gatos domésticos". Déjame hacer un poco más de explicación sobre estos captura. "(arquero (s |) |)" significa "guardián (s |)" o nada, y "guardián (s |)" significa "guardianes" o "guardián"; así que "guardianes" al lado de "libro" es capturado.

"(s |)" es un grupo y cualquier grupo puede ser capturado; que significa "s" o nada. Tenga en cuenta que no es necesariamente el grupo que está emparejado; es el patrón que se corresponde. La cadena de sub-match poder que tiene nuestra "s" es tenedores de libros. Como "contadores" se corresponde, nuestro "s" es capturado. Captura y juego no son las mismas cosas. Después de que ocurre coincidente, si hay cualquier grupo en la cadena de sub emparejado en la cadena disponibles, es capturado (asigna a una variable) del grupo.

La captura en la lista Contexto En el contexto de lista, un partido, /expresiones regulares /, con agrupaciones devolverá la lista de valores de grupo coincidentes ($ 1, $ 2, ...). Ilustro esta mostrando cómo para que coincida con el tiempo; este es un ejemplo importante. A continuación se produce una coincidencia. ($ mis horas, mis $ minutos, mis $ seg) = ($ thetime = ~ /(\\ d \\ d): (\\ d \\ d): (\\ d \\ d) /); Esta afirmación no está en la condición si.

El siguiente código ilustra esto: usar estricta; mi $ tiempo = "10:20:15"; ($ mis horas, mis $ minutos, mis $ seg) = ($ thetime = ~ /(\\ d \\ d): (\\ d \\ d): (\\ d \\ d) /); print "Hrs es:", $ hrs, "\\ n"; print "minutos es:", $ minutos, "\\ n"; print "Secs es:", $ segundos, "\\ n"; La salida de este código es: Hrs es: 10 minutos es: 20 Secs es: 15 Si conoce el sentido de la lista Contexto en Per

Page   <<  [1] [2] [3] [4] [5] >>
Copyright © 2008 - 2016 Lectura Educación Artículos,https://lectura.nmjjxx.com All rights reserved.