ThinkPHP常用正则表达式

匹配str中的电话

    
    $p = '/\d+\-\d+/';
    $str = "我的电话是010-12345678";
    preg_match($p, $str, $match);
    echo $match[0];

匹配str中的姓名

    
    $p = '/name:([\w\s]+)/';
    $str = "name:steven jobs";
    preg_match($p, $str, $match);
    echo $match[1]; //结果为:steven jobs

实现正则匹配,并输出邮箱地址

    
    $subject = "my email is [email protected]";
    $pattern = '/[\w\-]+@\w+\.\w+/';
    preg_match($pattern, $subject, $matches);
    echo $matches[0];

正则匹配所有li中的数据

    
    $str = "
  • item 1
  • item 2
"
; $p = "/
  • (.*)<\/li>/i"; //解释下这个正则://后面的i表示不区分大小写,
  • (.*?)<\/li>表示li标签内的匹配的()内的值有多少,括号内的.表示所有单字符,*表示数量为0个或者多个。也就是li标签内有字符就显示出来 preg_match_all($p, $str, $matches); print_r($matches[1]);
  • 正则表达式的搜索和替换

        
        $str = '主要有以下几个文件:index.php, style.css, common.js';
            //将目标字符串$str中的文件名替换后增加em标签
            $p = '/\w+\.\w+/i';
            $str = preg_replace($p, '$0', $str);
            echo $str;

    正则匹配常用案例 注册

       
        $user = array(
            'name' => 'spark1985',
            'email' => '[email protected]',
            'mobile' => '13312345678'
        );
        //进行一般性验证
        if (empty($user)) {
            die('用户信息不能为空');
        }
        if (strlen($user['name']) < 6) {
            die('用户名长度最少为6位');
        }
        //用户名必须为字母、数字与下划线
        if (!preg_match('/^\w+$/i', $user['name'])) {
            die('用户名不合法');
        }
        //验证邮箱格式是否正确
        if (!preg_match('/^[\w\.]+@\w+\.\w+$/i', $user['email'])) {
            die('邮箱不合法');
        }
        //手机号必须为11位数字,且为1开头
        if (!preg_match('/^1\d{10}$/i', $user['mobile'])) {
            die('手机号不合法');
        }
        echo '用户信息验证成功';

    你可能感兴趣的:(thinkphp)