[華語, cmn-Hant-TW]
主要是用在去掉電話號碼上那堆括號或是連字號之類的東西。用正規表示式來處理並不困難,其中 ‘\D’ 代表非數字(注意大小寫),把非數字的字元通通取代成空字串即可。
Perl
$string =~ s/\D//g;
PHP
$string = preg_replace( '/\D/', '', $string );
[華語, cmn-Hant-TW]
主要是用在去掉電話號碼上那堆括號或是連字號之類的東西。用正規表示式來處理並不困難,其中 ‘\D’ 代表非數字(注意大小寫),把非數字的字元通通取代成空字串即可。
$string =~ s/\D//g;
$string = preg_replace( '/\D/', '', $string );
[客家話, hak-Hant-TW]
Perl script 可以用 system(); 來執行外部的程式,偷懶時當好用。 毋過 system(); 有一隻麻煩: 執行結果會直接丟到 stdout,script 自家拿不到結果,是講 script 會拿到執行結果做下一步動作,就要用其他方法了,用 open 加 pipe 就可以做到,像要用 find 尋到全部的 .txt 檔,一隻一隻撈拒打開來,就可以按仔寫:
open FILES, "/usr/bin/find *.txt |" while (<FILES>) { open(FILE, $_); }
第一隻 open 那邊會存下結果放到 FILES,記得盡後背要加一隻 ‘|’ (pipe) 來導向,用 while 一行一行的撈他印出來。第二隻 open 就是正經來打開檔案了,按仔寫毋會太麻煩,毋夠跨平台的能力較差就是。
[華語, cmn-Hant-TW]
有用到順便記一下,參考這個網頁的討論,應該這樣寫即可
File::Find::find( {wanted => sub { wanted($arg) }}, $dir); sub wanted { my ( $arg ) = $_; ... }
$arg 即為要傳的參數,$dir 是搜尋目錄。當然參數要傳 reference 也是可以的,像是傳陣列就把參數改成 \@array 之類的即可,丟 reference 的原因是 wanted 函數不會回傳東西,要把處理後東西挖出來就得用這個方法。