Quiero hacer coincidir dos cadenas diferentes y la salida debe venir en $ 1 y $ 2, De acuerdo conmigo en este ejemplo, si $ a es 'xy abc', entonces $ 1 debe ser 'xy abc' y $ 2 debería 'abc', pero la parte 'abc' viene en $ 3. ¿Puede ayudarme a escribir una expresión regular en que $ 1 debe tener una cadena completa y $ 2 si tiene una segunda parte? Estoy usando Perl 5.8.5.perl regex matching failed
my @data=('abc xy','xy abc');
foreach my $a (@data) {
print "\nPattern= $a\n";
if($a=~/(abc (xy)|xy (abc))/) {
print "\nMatch: \$1>$1< \$2>$2< \$3>$3<\n";
}
}
Salida:
perl test_reg.pl
Pattern= abc xy
Match: $1>abc xy< $2>xy< $3><
Pattern= xy abc
Match: $1>xy abc< $2>< $3>abc<
"Estoy usando Perl 5.8.5." Eso es ocho años. Realmente deberías considerar actualizar. –