我想匹配兩個不同的字符串,輸出應該在$ 1和$ 2, 根據我在這個例子中,如果$ a是'xy abc',那麼$ 1應該是'xy abc'和$ 2應該'abc',但是'abc'部分的價格是3美元。 你能幫我寫一個正則表達式,$ 1應該有整個字符串,$ 2應該有 有第二部分。 我使用的是perl 5.8.5。perl正則表達式匹配失敗
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";
}
}
輸出:
(?|(abc (xy))|(xy (abc)))
爲什麼即使有捕捉整個事情打擾:
perl test_reg.pl
Pattern= abc xy
Match: $1>abc xy< $2>xy< $3><
Pattern= xy abc
Match: $1>xy abc< $2>< $3>abc<
「我用perl 5.8.5。」那已經八歲了。你應該考慮升級。 –