I want to combine two different lines, and the output should consist of $ 1 and $ 2. According to me in this example, if $ a is "xy abc", then $ 1 should be "xy abc", and $ 2 should be "abc", but part " abc "is at $ 3. Could you help me write a regular expression in that $ 1 must contain the whole string, and $ 2 is the second part. I am using perl 5.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";
}
}
Output:
perl test_reg.pl
Pattern= abc xy
Match: $1>abc xy< $2>xy< $3><
Pattern= xy abc
Match: $1>xy abc< $2>< $3>abc<
source
share