PCRE(正则表达式)匹配中文最权威汇总02-11
首先,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]/';
- PHP代码中的一句话木马 2015-03-03
- 重新认识PHP中的POST 2015-01-29
- ThinkPHP 伪静态配置(Apache+IIS)(二) 2014-12-10
- ThinkPHP 伪静态配置(Apache+IIS)(一) 2014-12-06
- mysql_real_escape_string()与addsalashes()的区别 2014-12-02