私はこの配列を持っています。なぜこのperl正規表現は機能しませんか?
my @input = ("He walk+V3SG very fast.", "He study+V3SG hard.");
と私は 'walk + V3SG'と 'study + V3SG'を 'walks'と 'studies'に置き換えたいと考えています。
以下は私が書いたスクリプトです。私はこれがうまくいくはずだと思ったが、なんらかの理由でそれが機能していない。
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";
}
誰でもスクリプトに間違いがあると教えていただけますか?
をまた、彼らはすべてのELSIF/ELSE/IFを使用するべきではありません。文は3つの形式すべてを含むことができます。 – ikegami
ありがとうございます( –