看板 Perl 關於我們 聯絡資訊
※ 引述《LiloHuang (相見不如懷念)》之銘言: : ※ 引述《higoodman (我是正好人)》之銘言: : : 我有一個字串裡面包含 XX大學YYY 的字樣, : : 請問可有辦法利用 大學 兩字來抓取出 XX 和 YYY? : : 謝謝... : $_ = 'XX大學YYY'; : if(/(..)大學(...)/) { : print "$1,$2",$/; : } 如果"大學" 這兩個字有其怪符號的話 程式碼需加上 use encoding 'big5', STDIN => 'big5', STDOUT => 'big5'; 這樣中文字在regular expression 裡面比較不會出問題 不過用這行會有其他的效果就是 一般不加encoding這行的話 要處理中文字用以下寫法吧 $str="xx大學yy"; if($str =~ /(.*?)\Q大學\E(.*?)/) { ($front, $rear) = ($1, $2); } #ps:用\Q \E包住字串 用using big5的話 length("中文字") 會變成3 split //,$string 也會把中文當作一個token 而不是把中文切開成兩個bytes $big5 = "[\xA1-\xF9][\x40-\x7E\xA1-\xFE]"; $input=~/$big5/; 這種寫法也不能用 不會還是有方法可以解決就是 :p 處理中文的時候要特別小心就是 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.197.133
LiloHuang:基本上沒有衝碼的話不需要做太多額外處理 會增加負擔 10/14 19:33