2010-12-17 59 views
4

更換正則表達式匹配我有我的Perl腳本以下行:的Perl - 任意操作上的正則表達式

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

我想找到字符串中的所有單詞,如果字是已知單詞的數組中取而代之的是保留它(理想情況下,我想在匹配上執行任意操作,而不僅僅是三元運算符)。

爲此,我嘗試使用三元運算符。 Perl對待?和:作爲文字符號,並將它們與變量(如果定義)連接起來。

如何讓Perl處理?:在替換爲三元運算符? P:我知道我可以在下一行代碼中執行匹配操作,但爲了清晰起見,我想保留一行代碼。

回答

9

您需要的 'E'(執行)預選賽:

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

謝謝,我知道我錯過了一些非常基本的。 – Muxecoid 2010-12-17 21:26:11