typestar

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

  1. En contexto de lista la coincidencia devuelve sus grupos y llena $y, $m y $d de una vez.
  2. (?<verb>...) nombra un grupo; la coincidencia lo deposita en el hash %+.
  3. /g en contexto de lista junta todas las coincidencias, aquí un arreglo con las palabras con t.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 3 de 3 en Expresiones regulares; paso 9 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →