关于PHP匹配汉字的问题,好纠结,求指点啊

fangjinzhen 发布于 2013/10/29 15:39
阅读 642
收藏 6
PHP

自己百度GOOGLE了半天发现匹配汉子的正则主要就是(在UTF-8编码下)以下几种(始终没有完美的……):

第一种:[\x{4e00}-\x{9fa5}],该正则能匹配汉子,但是无法匹配全角符号

第二种:[\x{FF00}-\x{FFFF}\x{4e00}-\x{9fa5}],该正则能匹配汉子和全角符号,但是全角符号只有部分啊,比如《》{}【】这些符号就无法匹配。

第三种:[^u4E00-u9FA0],这种写法是我朋友无意中弄出来的,PHP竟然没有报错(也不知道为什么……),这些法可以匹配汉子,所有的全角符号,但他也包括了所有的半角符号,还包括小写的vwxyz这几个字母

各位大侠,走过路过,帮我瞅瞅啊

加载中
0
南湖船老大
南湖船老大

那就去查码表,一组一组的匹配么。

结合第一种和第二种,显然第二种是第一种的超集,而你需要的第二种的超集。

至于这个码表,word里就有。

fangjinzhen
fangjinzhen
最后我用的方法和你差不多,一个个找出来的啊,把键盘上常用的全角符号都给敲了一遍最后整理为[\x{FF00}-\x{FFFF}\x{4e00}-\x{9fa5}\x{300a}\x{300b}\x{3010}\x{3011}\x{3001}\x{3002}\x{3003}\x{2018}\x{2019}\x{201c}\x{201d}],不过这还包括日语韩语的全角,不过咱中国人用应该够了
0
少年KK
少年KK
能说清楚你要匹配的目标是什么吗?
fangjinzhen
fangjinzhen
匹配汉子加全角符号
0
filecache
filecache
把非ASCII的都认为是需要的~ 一般应该可以的吧~
0
pyruby
pyruby
[\u0391-\uFFE5]这个是全的
fangjinzhen
fangjinzhen
你去看下unicode代码表就知道肯定不是全的!!
0
pyruby
pyruby
你可以去试试
0
pyruby
pyruby

引用来自“宝仔love”的答案

[\u0391-\uFFE5]这个是全的
中文已经全了
0
pyruby
pyruby
我没研究过我跟dog在说半天阿!你太狗眼看人低阿,你不能因为比我多吃几年饭就这样阿,金针你这样不行的阿,太让我失望了,你这样要翻跟豆的阿。
返回顶部
顶部