1

私は次の文字列を持っています:

ネコ イヌ キツネ あおむし くま フォクシー

この文の「猫」と「キツネ」という単語を「動物」という単語に置き換える必要があります

私は次のことを行います:

$Str1="cat";
$Str2="fox";
$NewStr="animal";

open(F1, "<$inputFile") or die "Error: $!";
open(F2, ">$outputFile") or die "Error: $!";

while ($line = <F1>) {
     $line =~ s/$Str1|$Str2/NewStr/g;
     print F2 "$line";

}

しかし、単語の「毛虫」と「狐」の部分(「猫」と「狐」)が入れ替わっている問題もあります。「猫」と「キツネ」という単語だけを置き換える方法は?

4

3 に答える 3

3
$line =~ s/\b(?:$Str1|$Str2)\b/$NewStr/g;

変更の意味:

\bワード境界のゼロ幅アサーション

(?:グループを開始しますが、キャプチャには使用せず、グループ化するだけです

于 2013-05-22T16:15:26.053 に答える