开发者社区 问答 正文

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

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

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

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

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

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

展开
收起
爱吃鱼的程序员 2020-06-22 14:45:56 591 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

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

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

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

    最后我用的方法和你差不多,一个个找出来的啊,把键盘上常用的全角符号都给敲了一遍最后整理为[\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}],不过这还包括日语韩语的全角,不过咱中国人用应该够了能说清楚你要匹配的目标是什么吗?匹配汉子加全角符号把非ASCII的都认为是需要的~一般应该可以的吧~[\u0391-\uFFE5]这个是全的你去看下unicode代码表就知道肯定不是全的!!你可以去试试

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

    [\u0391-\uFFE5]这个是全的我没研究过我跟dog在说半天阿!你太狗眼看人低阿,你不能因为比我多吃几年饭就这样阿,金针你这样不行的阿,太让我失望了,你这样要翻跟豆的阿。
    2020-06-22 14:46:14
    赞同 展开评论
问答分类:
PHP
问答标签:
问答地址: