網路管理語言 Perl 入門與實作: | ||
---|---|---|
<<< Previous | 8. 正規表示式 | Next >>> |
置換是指先進行樣式比對,若有相符的地方,則將相符之處,置換成指定的字串。
置換的語法如下:
s/樣式/欲置換的字串/ 可加上修飾子:e i m o s x g i m o s x g 意思同 8.3 比對中的修飾子 e 代表將欲置換的字串視為一運算式 s/樣式/欲置換的字串/修飾子 |
用例 1:
# 將 $line 中的 < 符號,換成 < $line =~ s/</</; |
用例 2:修飾子 i,不計大小寫
# 將 $text 中的 H1 或 h1 換成 H3 $text =~ s/H1/H3/i; |
用例 3:使用記憶功能
$text =~ s/(\w+)\@(.+)/帳號:$1 主機名稱:$2/; |
用例 4:刪除
$str = "I want to go to San Francico. I want to!"; $str =~ s/San//; # 將第一個比對到的 San 字串置換掉 print $str, "\n\n"; 再者: $str = "I want to go to San Francico. I want to!"; $str =~ s/want//g; # 將所有比對到的 want 字串置換掉 print $str, "\n\n"; |
用例 5:使用運算式
while(<DATA>) { s/7/3 + 5 * 2.1/eg; # 因為有加 e 這個修飾子,所以 3 + 5 * 2.1 被視為運算式來執行 # 它會將找到的 7,用 3 + 5 * 2.1 的運算結果來取代 } __DATA__ Marry 6 John 7 Kenny 8 輸出: Marry 6 John 13.5 Kenny 8 以下是 CGI 程式中經常用的解碼程式片段: $value=~ s/%(..)/pack("c",hex($1))/ge; 因為有加 e 這個修飾子,所以 pack("c",hex($1)) 被視為運算式來執行 |
<<< Previous | Home | Next >>> |
8.3 比對 | Up | 8.5 轉換 |