我有这个数组。为什么perl正则表达式不起作用?
my @input = ("He walk+V3SG very fast.", "He study+V3SG hard.");
我想用'walk + V3SG'和'study + V3SG'来代替'走路'和'学习'。
下面是我写的脚本。我认为这应该工作,但由于某种原因,它不工作。
foreach my $sent(@input){
if ($sent =~ m/\Q+V3SG/){
if ($sent =~ m/\Q[dlr]y+V3SG/){
$sent =~ s/\Q[dlr]y+V3SG/ies/g;
}
if ($sent =~ m/\Q[s|x|sh|ch|o]+V3SG/){
$sent =~ s/\Q[s|x|sh|ch|o]+V3SG/es/g;
}
else {$sent =~ s/\Q+V3SG/s/g}
}
}
foreach my $sent(@input){
print $sent;
print "\n";
}
谁能告诉我这个脚本有什么问题吗?
此外,他们不应该使用if/ELSIF /别的都没有。这句话可以包含所有三种形式。 – ikegami
非常感谢你(; –