作者jjt (jet)
看板perl
标题Re: [问题] 请问抓取字串
时间Fri Oct 12 12:58:28 2007
※ 引述《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
1F:推 LiloHuang:基本上没有冲码的话不需要做太多额外处理 会增加负担 10/14 19:33