如何匹配下一行?Perl正则表达式与LHS组合
sometext_TEXT1.yyy-TEXT1.yyy
anothertext_OTHER.yyy-MAX.yyy
想要从最后删除- repetative.text
,但只有当它重复。
sometext_TEXT1.yyy
anothertext_OTHER.yyy-MAX.yyy
我试图
use strictures;
my $text="sometext_TEXT1.xxx-TEXT1.xxx";
$text =~ s/(.*?)(.*)(\s*-\s*$2)/$1$2/;
print "$text\n";
打印
Use of uninitialized value $2 in regexp compilation at a line 3.
与其他词,寻找下一个split + match
更好的解决方案...
while(<DATA>) {
chomp;
my($first, $second) = split /\s*-\s*/;
s/\s*-\s*$second$// if ($first =~ /$second$/);
print "$_\n";
}
__DATA__
sometext_TEXT1.yyy-TEXT1.yyy
anothertext_OTHER.yyy-MAX.yyy
在替代的匹配部分反向引用必须\ 2而不是$ 2 – user1937198