[英]Perl - replace regex match with arbitrary operation on regex
我的Perl腳本中有以下行:
s/\b(\w+)\b/ $replaces{$1} ? $replaces{$1} : $1 /g;
我想找到字符串中的所有單詞,如果單詞在已知單詞的數組中,則替換它,否則保留它(理想情況下我想在匹配上執行任意操作,而不僅僅是三元運算符)。
為此,我嘗試使用三元運算符。 Perl對待? 和:作為文字符號,只使用變量(如果已定義)將它們連接起來。
如何讓Perl處理?:在replace中作為三元運算符?
PS:我知道我可以在下一行代碼中對匹配執行操作,但為了清晰起見,我想保留一個襯里。
你需要'e'(執行)限定符:
s/\b(\w+)\b/ $replaces{$1} ? $replaces{$1} : $1 /ge;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.