2つの異なる文字列を一致させたいので、出力は$1と$2になります。この例の私によると、$aが'xy abc'の場合、$1は'xy abc'で、$2は'abc'ですが、'abc '部分は$3で来ています。$ 1には文字列全体が含まれ、$ 2には2番目の部分が含まれる必要があるという点で、正規表現を作成するのを手伝っていただけませんか。私はperl5.8.5を使用しています。
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";
}
}
出力:
perl test_reg.pl
Pattern= abc xy
Match: $1>abc xy< $2>xy< $3><
Pattern= xy abc
Match: $1>xy abc< $2>< $3>abc<