typestar

Coincidencia con regex en Perl

Ligar cadenas a patrones con =~, más !~ y el modificador /i.

use strict;
use warnings;

my $line = "Error: disk /dev/sda1 is 93% full";

# =~ binds a string to a pattern; !~ negates the match
print "flagged\n" if $line =~ /disk/;
print "shouting\n" if $line =~ /error/i;
print "network is fine\n" if $line !~ /eth\d/;

if ($line =~ /(\d+)% full/) {
    print "usage at $1\n";
}

Cómo funciona

  1. =~ es verdadero cuando el patrón coincide en algún punto de la cadena; !~ cuando no.
  2. /i ignora mayúsculas y minúsculas, así que error encuentra Error.
  3. Los paréntesis capturan los dígitos, y $1 los guarda tras una coincidencia exitosa.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
13
Caracteres a escribir
312
Tokens
49
Ritmo de tres estrellas
60 tpm

Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 49 segundos.

Escribe este fragmento

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

← Anterior Siguiente →