PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
Perl
[问题] 用 regular Exp 比对中文的问题
楼主:
z20240
(åŸ¹æ ¹)
2017-05-04 12:49:48
各位大大好,
小弟因为一些需要,
要将从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看得懂...
多谢...
作者:
lgen7604
2017-05-04 15:52:00
pattern改成/([\N{U+4E00}-\N{U+9FA5}]+)/试试看
作者:
CindyLinz
(Cindy Wang)
2017-05-04 16:02:00
pattern 里应该是 \x{4e00} 这样的写法吧?
作者:
lgen7604
2017-05-04 17:21:00
不确定差别在哪里 都能work FYR:
https://goo.gl/bjmmHQ
作者:
flu
(Crazy Rhythm)
2017-05-05 03:20:00
perl对unicode支援很好啊 用 \p{Han}或 \p{CJK} 看看还有新版的perl对unicode新版本的支援度也较好example
https://pastebin.com/UU6Z6Qnb
楼主:
z20240
(åŸ¹æ ¹)
2017-05-05 09:17:00
终于解决了! 谢谢大家~
继续阅读
Re: [请益] 新手提问,撷取多行的问题
jkchang
[请益] 新手提问,撷取多行的问题
sostmr
[问题] 变量 取代问题
nnkerker
Re: [问题] 程式返回值疑问
CindyLinz
[问题] 程式返回值疑问
clanguage
Re: [问题] 要统计同一天同一小时资料
jkchang
Re: [问题] 要统计同一天同一小时资料
CindyLinz
[问题] 要统计同一天同一小时资料
asiagodfater
Re: [问题] LWP::Simple get 乱码问题
clanguage
[问题] LWP::Simple get 乱码问题
clanguage
Links
booklink
Contact Us: admin [ a t ] ucptt.com