Je veux faire correspondre deux chaînes différentes et la sortie devrait venir en $ 1 et $ 2, Selon moi dans cet exemple, si $ a est 'xy abc', alors $ 1 devrait être 'xy abc' et $ 2 devrait 'abc', mais la partie 'abc' vient avec 3 $. Pouvez-vous m'aider s'il vous plaît à écrire une regex en ce que $ 1 devrait avoir la chaîne entière et $ 2 devrait avoir la deuxième partie. J'utilise perl 5.8.5.Perl regex correspondant échoué
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";
}
}
Sortie:
perl test_reg.pl
Pattern= abc xy
Match: $1>abc xy< $2>xy< $3><
Pattern= xy abc
Match: $1>xy abc< $2>< $3>abc<
"J'utilise Perl 5.8.5." C'est huit ans. Vous devriez vraiment envisager de mettre à jour. –