FeiYan

网站导航

搜索

腾讯微博 新浪微博 FeelBLog 开源中国社区

常用PHP正则表达式

2012-09-17 01:23:03     0个评论     3434次访问

正则表达式一直以来是我比较头痛的东西,不过工作中是离不开正则表达式的,代码、vim编辑器、awk等Linux命令都广泛应用正则表达式。这是我收集并且测试过的PHP代码中常用的正则表达式,首先建立测试函数:

function regTest( $pattern, $str ) {
    var_dump( preg_match($pattern, $str) );
    preg_match_all($pattern,$str,$matches);
    var_dump( $matches );
    var_dump( preg_replace($pattern,$str,'Test') );
}
1. 匹配中文字符
$pattern = "/[\x{4e00}-\x{9fa5}]/u";
$str = "飞晏-feiyan";
regTest( $pattern, $str );
//依次输出结果
//int(1)
//array(1) { [0]=> array(2) { [0]=> string(3) "飞" [1]=> string(3) "晏" } } 
//string(28) "TestTest-feiyan"

关于汉字的匹配,网上很多给的都是“[\u4e00-\u9fa5]”,这个正则不一定完全正确。

2. 匹配tab缩进、空格和换行
$pattern = "/[\n\s*\r]/";
//依次包含一个或多个空格、换行和tab
$str = "Hello \n,   PHP";
regTest( $pattern, $str );
//依次输出结果
//int(1)
//array(1) { [0]=> array(3) { [0]=> string(1) " " [1]=> string(1) " " [2]=> string(1) " " } }
//string(21) "HelloTestTest,TestPHP"
3. 匹配Email地址
$pattern = "[\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*]";
$str = '如有问题,请联系service@lenovo.com或者contact@ibm.com。';
regTest( $pattern, $str );
//依次输出结果
//int(1)
//array(4) { [0]=> array(2) { [0]=> string(18) "service@lenovo.com" [1]=> string(15) "contact@ibm.com" } [1]=> array(2) { [0]=> string(0) "" [1]=> string(0) "" } [2]=> array(2) { [0]=> string(0) "" [1]=> string(0) "" } [3]=> array(2) { [0]=> string(0) "" [1]=> string(0) "" } } 
//string(41) "如有问题,请联系Test或者Test。"
   
//使用Filter函数
filter_var($email, FILTER_VALIDATE_EMAIL);

我一般不自己写正则表达式去验证邮箱,使用PHP内置filter函数可以很方便的完成邮箱地址的验证。

4. 匹配国内手机号码和电话号码
//固定电话匹配
$pattern = "[\d{3,4}-\d{7,8}]";
$str = '联系电话010-12345678';
regTest( $pattern, $str );
   
//最简单的匹配手机号匹配
$pattern = "[1\d{10}]";
$str = '联系电话15812345678';
regTest( $pattern, $str );
5. 匹配HTML中的图片地址
$pattern = '/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/';
$str = '<img id="test_img" src="images/123.gif" alt="test" />';
regTest( $pattern, $str );

文章标签: php  正则表达式 

本文地址:常用PHP正则表达式

相关文章

2009-08-20:常用PHP类建站程序和源码

2009-11-06:PHP中出现Notice: Undefined index的三种解决办法

2011-01-09:PHP转换IP地址到真实地址

2011-11-03:PHP转换汉字拼音和Unicode

2011-11-29:EditPlus 3.x 配置PHP开发环境

2011-12-28:单点登录系统(SSO)的开发思路

2012-08-17:用PHP开发一个自己的博客

2012-09-03:高性能网站架构基础篇

2012-09-17:Ubuntu编译Yaf

2012-09-19:使用Pecl或Pear安装PHP扩展

0 Comments »

发布评论

最新评论

  1. SpecsSpecs

    不错~~

  2. zhyzhy

    我也遇到这个问题 不知道是swf 、jcrop 、 uploadify 还是浏览器缓存

  3. java开发java开发

    您好!我按你的源码进行了编,能正常运行,但是我们项目是由java开发的,怎么做才能将生成的一个可执行文件?我想把这个文件放到服务器上直接运行,不想安装~