看板 Programming 關於我們 聯絡資訊
※ 引述《dreamer.bbs@snow.ice.ntnu.edu.tw ( )》之銘言: : 小弟剛接觸 perl,有點問題想麻煩各位先進幫忙解答一下: : 我知道在 perl 中可以用 s/pattern/replacement/ 來取代字串, : 若原始字串是 "a/bcde/f", 若在程式碼中以 s/^a\/(.*)/c\1d/ 進行取代 : 結果會變成 "cbcde/fd" : 但是若我想把 pattern 跟 replacement 放在變數裡, : 比方說 : $pat = "^a\/(.*)"; : $rep = "c\1d"; : 然後以 s/$pat/$rep/ 來進行取代的操作, : 結果會得到 "c\1d" : 因為我需要由檔案中將 pattern 與 replacement 的規則讀進來, : 該如何做才能得到與第一種寫法一樣的結果呢? : 希望各位先進能撥空稍微指點一下,感恩! =) 下面的方法應該可以完成需求 不過我也想知道更簡潔的方法 my $pat = "^a\/(.*)"; my $str = "a/bcde/f"; if( $str =~ /$pat/){ my $rep = "c$1d"; $str =~ s/$pat/$rep/; print $str; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.104.145.65