Re: 想請教一下 perl 中的字串取代
看板Programming作者roylee17 (把我id還我阿......)時間18年前 (2007/09/19 07:47)推噓0(0推 0噓 0→)留言0則, 0人參與討論串3/12 (看更多)
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 12 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章