estoy teniendo dificultades para determinar qué caracteres necesidad de escape al emplear QR de Perl {} construir¿Qué caracteres debo escapar en una expresión regular precompilada de Perl?
Estoy intentando crear una expresión regular precompilado para el texto de varias líneas que contiene una gran variedad de personajes normalmente escapado (# *.>: []) y también contiene otra expresión regular precompilada. Además, debo unir lo más estrictamente posible para fines de prueba.
my $output = q{# using defaults found in .config
*
*
Options:
1. opt1
> 2. opt2
choice[1-2?]: };
my $sc = qr{(>|\s)}smx;
my $re = qr{# using defaults found in .config
*
*
Options:
$sc 1. opt1
$sc 2. opt2
choice[1-2?]: }mx;
if ($output =~ $re) {
print "OK!\n";
}
else {
print "D'oh!\n";
}
error:
Quantifier follows nothing in regex; marked by <-- HERE in m/# using defaults found in .config
* <-- HERE
*
Options:
(?msx-i:(>|\s)) 1. opt1
(?msx-i:(>|\s)) 2. opt2
choice[1-2?]:/at ./so.pl line 14.
El intento de escapar de los resultados asteriscos en un partido fallado (D'oh salida). Intentar escapar de otros caracteres molestos también resulta en una coincidencia fallida. Podría seguir probando diferentes combos de qué escapar, pero hay muchas variaciones aquí y espero que alguien pueda darnos una idea.
Argh! Mi comprensión de lo que 's' y 'x' hicieron era inversa a la realidad. Por lo tanto, la 's' falta de $ re. Pero sí, culpo a PbP aquí también. :) –
El libro explica qué hacen las opciones y por qué usarlas ... realmente no se puede culpar al libro por esto. :) –
Puedo culpar al libro. Dice "Usar siempre el indicador/x" (p 236) y "Usar siempre el indicador/m" (p 237).La recomendación de "Siempre" es incorrecta. –