簡體   English   中英

Perl - 用正則表達式上的任意操作替換正則表達式匹配

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM