2010-12-17 4 views
4

上で任意の操作で正規表現マッチを置き換える:Perlの - 私は私のPerlスクリプトに次の行持つ正規表現

s/\b(\w+)\b/ $replaces{$1} ? $replaces{$1} : $1 /g; 

は、私は、文字列内のすべての単語を見つけたいとの言葉は、既知の単語の配列である場合それ以外のものを置き換えてください(理想的には、3項演算子ではなく、一致する任意の演算を行いたい)。

これを行うには、私は三項演算子を使用しようとします。 Perlは扱いますか?と:リテラルシンボルとして、これらを変数(定義されている場合)と単に連結します。

どのようにしてPerlに扱わせるのですか?:3進演算子として置換するか?

P.S:私は、次のコード行でのマッチで操作を実行できることを知っていますが、明確にするために、それを1つのライナーにしたいと思います。あなたが 'E'(実行)修飾子必要

答えて

9

s/\b(\w+)\b/ $replaces{$1} ? $replaces{$1} : $1 /ge; 
+0

おかげで、私は非常に基本的なものを欠場知っていました。 – Muxecoid