[問題] 請問要怎麼只替換最後match的字?

看板Perl作者 (灰天使)時間19年前 (2006/09/16 16:13), 編輯推噓4(402)
留言6則, 3人參與, 最新討論串1/1
大概像這樣子 $token = 'word'; $string = 'word abc def word fgh'; 用s/$token/apple/ 只會替換第一個match到的word 請問如果要倒過來替換掉最後一個word要怎麼作呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 69.255.250.222 ※ 編輯: GrayAngel 來自: 69.255.250.222 (09/16 16:23)

09/16 16:23, , 1F
只替換最後一個? s/$token$/apple/
09/16 16:23, 1F

09/16 16:27, , 2F
我試過 s/$token$/word/ 不過連換都不會換的樣子
09/16 16:27, 2F

09/16 16:28, , 3F
XD 是 s/$token$/apple/
09/16 16:28, 3F

09/16 16:45, , 4F
我只想到reverse替換再reverse :( 有沒有比較好的方法?
09/16 16:45, 4F

09/16 16:57, , 5F
我根本看錯題目了 囧 s/(.*)$token/$1apple/ 這樣即可
09/16 16:57, 5F

09/16 19:50, , 6F
$string =~ s/(.*)$token/$1apple/;
09/16 19:50, 6F
文章代碼(AID): #152x8oMR (Perl)
文章代碼(AID): #152x8oMR (Perl)