PCRE(正则表达式)匹配中文最权威汇总
twocode

    首先,PCRE你真的认识它吗?

    PCRE(Perl Compatible Regular Expressions中文含义:perl语言兼容正则表达式)是一个用C语言编写的正则表达式函数库,由菲利普.海泽(Philip Hazel)编写。PCRE是一个轻量级的函数库,比Boost之类的正则表达式库小得多。PCRE十分易用,同时功能也很强大,性能超过了POSIX正则表达式库和一些经典的正则表达式库。

    从本质上再一次认识它,下面就总结一下,在正则表达式使用中,常见的误区和混淆:

    正则表达式做的就是根据实际的需求去匹配内容,这一特点,让它更多的用于一些非正规网站的文章采集,当然不排除在采集过程中对正则表达式的技术性要求。

    另外的一个用途是简单的验证,在此?重点讲解一下验证码在验证中文的使用,其他的都是常用原子的运用,自己积累吧:

    在这里有很多的网站资料都是一样的,可能就是一篇文章转来转去,害人害己,多的不说了,开始讲干货!

    首先是PHP中的匹配:

    <?php

    //正宗的匹配中文的正则表达式

    $pattern = '/[^u4E00-u9FA5]+/';//其中的英文字母不区分大小写

    /*其中u4E00-u9FA5等价于    p{InCJK_Radicals_Supplement}p{InKangxi_Radicals}p{InIdeographic_Description_Characters}p{InCJK_Symbols_and_Punctuation}p{InHiragana}p{InKatakana}p{InBopomofo}p{InHangul_Compatibility_Jamo}p{InKanbun}p{InBopomofo_Extended}p{InKatakana_Phonetic_Extensions}p{InEnclosed_CJK_Letters_and_Months}p{InCJK_Compatibility}p{InCJK_Unified_Ideographs_Extension_A}p{InYijing_Hexagram_Symbols}p{InCJK_Unified_Ideographs}

所以正则表达式还可以写成:

*/

  $pattern = '/[^p{InCJK_Radicals_Supplement}p{InKangxi_Radicals}p{InIdeographic_Description_Characters}p{InCJK_Symbols_and_Punctuation}p{InHiragana}p{InKatakana}p{InBopomofo}p{InHangul_Compatibility_Jamo}p{InKanbun}p{InBopomofo_Extended}p{InKatakana_Phonetic_Extensions}p{InEnclosed_CJK_Letters_and_Months}p{InCJK_Compatibility}p{InCJK_Unified_Ideographs_Extension_A}p{InYijing_Hexagram_Symbols}p{InCJK_Unified_Ideographs}]/';

 //两个表达式是同样的效果

   //还有一种,这个是匹配任何双字节字符的,不但是中文

    $pattern = '/[^\x00-\xff]/'; 

网友评论已关闭