我有這個數組。爲什麼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
非常感謝你(; –