Grupos de captura en Perl
Grupos de captura de tres maneras: listas numeradas, entradas con nombre en %+ y cosechas con /g.
use strict;
use warnings;
my $date = "2026-08-02";
# a match in list context returns its capture groups
my ($y, $m, $d) = $date =~ /^(\d{4})-(\d{2})-(\d{2})$/;
print "day $d of month $m, $y\n";
my $log = "GET /api/users 200";
if ($log =~ m{^(?<verb>\w+) (?<path>\S+) (?<status>\d+)$}) {
print "$+{verb} $+{path} -> $+{status}\n";
}
# /g in list context collects every match
my @words = "tea for two at ten" =~ /\bt\w+/g;
print "@words\n";
Cómo funciona
- En contexto de lista la coincidencia devuelve sus grupos y llena
$y,$my$dde una vez. (?<verb>...)nombra un grupo; la coincidencia lo deposita en el hash%+./gen contexto de lista junta todas las coincidencias, aquí un arreglo con las palabras con t.
Palabras clave y builtins usados aquí
ifmyprintuse
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 442
- Tokens
- 64
- Ritmo de tres estrellas
- 60 tpm
Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 64 segundos.
Paso 3 de 3 en Expresiones regulares; paso 9 de 27 en Fundamentos del lenguaje.