Re: 想請教一下 perl 中的字串取代
eval 少用,建議使用 qr{ pattern }
譬如
$pattern = qr/^a\/(.*)/;
比對時,可直接使用,如:
$str =~ s/$pattern/$1/g;
透過 qr 操作子可把 pattern 存起來,在呼叫的時候就不會有樣式編譯的問題 ( 請參閱
Programming Perl 樣式比對章節 )
或參閱 Perldoc
http://perldoc.perl.org/perlretut.html
http://perldoc.perl.org/perlop.html#Regexp-Quote-Like-Operators
http://perldoc.perl.org/perlop.html#qr%2fSTRING%2fimosx
※ 引述《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 的規則讀進來,
: 該如何做才能得到與第一種寫法一樣的結果呢?
: 希望各位先進能撥空稍微指點一下,感恩! =)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.223.100.79
推
09/22 00:09, , 1F
09/22 00:09, 1F
推
09/22 00:29, , 2F
09/22 00:29, 2F
→
09/22 00:29, , 3F
09/22 00:29, 3F
推
09/22 00:30, , 4F
09/22 00:30, 4F
→
09/22 00:31, , 5F
09/22 00:31, 5F
→
09/22 00:31, , 6F
09/22 00:31, 6F
推
09/22 00:35, , 7F
09/22 00:35, 7F
→
09/22 00:36, , 8F
09/22 00:36, 8F
推
09/22 00:39, , 9F
09/22 00:39, 9F
推
09/22 01:08, , 10F
09/22 01:08, 10F
推
09/22 01:13, , 11F
09/22 01:13, 11F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 7 之 12 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章