下面是我的脚本,它根据注释列表扫描输入文件的每一行。对于每一次出现,我都会从带有注释标签的行中标记该术语。正则表达式在没有 \Q..\E 运算符的情况下完美运行,但如果我不包含 \Q..\EI 则会出现范围错误。所以在下面的情况下,我必须保持替换有效,同时注意范围。希望问题很清楚。
while (<FILE>) {
chomp $_;
foreach $word (@array) {
@cells = split /\t/, $word;
$value = $cells[0];
$replace = $cells[1];
chomp $value;
chomp $replace;
$_=~s/\Q\b[\w\-]*$value[\w\-]*\b\E)/<$replace>$&<\\$replace>/ig;
}
print $_,"\n";
}