指令:s取代函數 語法:s/PATTERN/REPLACE/eg
其中PATTERN是文字處理(Regular Expression)的模式,REPLACE是代表取代成何種文 字 模式。而g是這個函數最常用的參數,代表要把所有符合文字模式的字符串 全部取 代,如果省略這個參數的話,則只取代一個符合文字模式的字符串;而加上e這 個參數是代 表要將REPLACE的部分當成一個運算式,如果沒有這個需要的話,就不用加 上這個參數。 說明:將符合文字處理模式的字符串取代成為要取代的字符串。
范例一: $string="i;love;perl"; $string=~s/:/*/: #此時$string="i*love:perl"; $string=~s/:/*/g; #此時$string="i*love*perl"; $stiing=~s/*/+/g; #此時$string="i+love+perl"; $string=~s/+//g: #此時$string="i love perl"; 上一行也可寫成$string=~tr/+//;效果都會一樣哦! $string=~s/per1/cgi/; #此時$string="i love cgi";
范例二: $string="i love per"; $string=~s/(love)/<$1>/; 第一個()內所找到的字符串變成$1,在這個范例中,會把變量love這個字符串變成 <>,此時$string="i<>perl"; $string="i love per1"; $string=~s/(i)(perl)/<$1><$2>/; 在這個范例中,會把i變成<>,perl變成<>此時$string="<>love<>"; $striag="i love per1"; $string=~s/(w+)/<$1>/g;
(w+)代表找尋符合一個或是多個英文字符或是數值的字符串,之后再將找到的字 符串設成$l。因為加上g這個參數,所以會找到字符串中的這三個英文單字, 然后 再把這三個單字分別加上<>這個符號,此時$string="<><><>";
|