我試圖想出一個正則表達式搜索/替換來封裝帶有大括號(例如; ${foo}
)的變量(例如; $foo
)。我想出了下面的正則表達式,但它並不如預期運行:在同一行中多次替換模式
s/"\([^"]*\)\$\([a-zA-Z0-9:]*\)\([^"]*\)"/"\1\${\2}\3"/g
不過,我有一些問題,這種模式。它只會爲每個引用的字符串執行一個模式。這是好的,因爲我可以在文件上多次運行表達式,但它不處理已經封裝在大括號中的變量。它只是把第二套大括號放在它們上面。
我現在的想法是剝離大括號\2
,但我不認爲這將工作,因爲模式將仍然匹配,它將只執行每引號字符串1替換。我查看了反向引用表達式文檔,但我無法確定更好的方法。
太棒了,這與預期完全一致。謝謝。 – user1713098
沒問題,如果我的答案奏效,你可以[接受它](http://meta.stackexchange.com/a/5235),點擊旁邊複選標記的大綱。 –
這隻有在一行上只有一對'''',即數據如'a「b」$ c「d」'將以a結尾「a」b「$ {c}」d「 ' – potong