[問題] 用 regular Exp 比對中文的問題
各位大大好,
小弟因為一些需要,
要將從mySql DataBase 中撈出來的名稱欄位(varchar)濾出是否為中文字。
我在網路上找尋utf8的中文範圍在u4e00-u9fa5
但是我用 perl 卻怎麼也match 不到
以下是我的 code
for (@output){
Encode::_utf8_on( $_->{name} );
if ($_->{name} =~ /([\u4e00-\u9fa5])+/) {
print " ($1) \n";
}
}
match 到的內容都很奇怪。
例如有一筆資料:08帥哥啦
match 到的是 (08) 而不是 (帥哥啦)
感覺上 perl 似乎並不認得 \u4e00 這種的表示方法...
請問高手們該怎麼在 regular 中表示中文字,可以讓perl看得懂...
多謝...
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.160.23.11
※ 文章網址: https://www.ptt.cc/bbs/Perl/M.1493873390.A.E01.html
推
05/04 15:52, , 1F
05/04 15:52, 1F
推
05/04 16:02, , 2F
05/04 16:02, 2F
推
05/04 17:21, , 3F
05/04 17:21, 3F
推
05/05 03:20, , 4F
05/05 03:20, 4F
→
05/05 03:21, , 5F
05/05 03:21, 5F
→
05/05 03:28, , 6F
05/05 03:28, 6F
→
05/05 09:17, , 7F
05/05 09:17, 7F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
Perl 近期熱門文章
PTT數位生活區 即時熱門文章