关闭

正则表达式学习

142人阅读 评论(0) 收藏 举报
正则表达式学习

<?php
    header('Content-type:text/html;charset=utf-8');

    //前导表示前面一个字符串

    //位置
    //+ 至少一个
    //* 0 或者多个
    // ? 0 或一个
    //.任意一个字符
    // .*前导任意字符,0个或多个
    //{3} ,前导必须3个
    // | 条件选择符
    //^开始 $结束

    //[],里的面任意一个即可。
    //[a-z]表示26个字母中,随便一个
    //[^abc]除了abc
    //()分组 (?:)不获取分组 (?=)限定也是不获取分组 |必须被分组()包含起来

    //元字符
    //\w   代表[a-zA-Z0-9_]
    //\d       [0-9]
    //\D       [^0-9]
    // \s 空白字符
    //\b表示到达单词边界 ,边界可以理解为空格


    //修饰符

    //i :   不区分大小写
    //m :  匹配首尾的时候,如果遇到换行, 也应该承认是结尾,只对 ^ $有作用
    //x:    忽略掉规则模式中的空白
    //A:    表示必须从头开始
    //s:    将多行视为一行

/*
    $model = "/ph p/xmA"; //规则模式
    $string = "this is php\n,  good";

    if(preg_match($model, $string)){
        echo "匹配";
    }else{
        echo '不匹配';
    }

    搜索数组中的相匹配的字符串
    preg_grep()函数

    $language = array('python','ruby','php','asp','jsp');

    找出最流行的3p语言

    print_r(preg_grep('/p$/', $language,PREG_GREP_INVERT));

    python 蟒蛇语言.
    找出以p开头的
    print_r(preg_grep('/^p/', $language));

    搜索模式 ,返回真假;

    echo preg_match('/php[0-5]/','php6'); //匹配一次


    //匹配电子邮件
    $pattern = '/([\w\.]{2,255})@([\w\-]{1,255}).([a-z]{2,4})/';
    $mail = 'yc60.com@-gmail.com';
    if(preg_match($pattern, $mail)){
        echo "电子邮件合法";
    }else{
        echo '电子邮件不合法';
    }



  //匹配全局

    preg_match_all('/php[1-5]/', 'php1saddsphp2sffphp3', $matches);

    print_r($matches);

    preg_match_all('/<[a-zA-Z]+>.*<//>|<[a-zA-Z]+/>/', 'php1saddsphp2sffphp3', $matches);
    print_r($matches);

    preg_match_all('/php[1-5]/', 'php1saddsphp2sffphp3', $matches);

    print_r($matches);





 // $pattern = '/([\w\.]{2,255})@([\w\-]{1,255}).([a-z]{2,4})/';
 //    $mail = 'yc60.com@-gmail.com';
 //    if(preg_match($pattern, $mail,$matches)){
 //        echo "电子邮件合法";
 //        print_r($matches);
 //    }else{
 //        echo '电子邮件不合法';
 //    }

    //匹配文件名。

    // $mode = '/\.(jpg|gif|png)$/';
    // $file = 'ddwsffdfqd.gif.png';
    // if(preg_match($mode, $file,$matches)){
    //     print_r($matches);
    // }else{
    //     echo "不成功";
    // }

    //取出扩展名
    $mode = '/^[a-zA-Z0-9_\.]+\.([a-z0-9A-Z]+)$/';
    $file = 'ddwsffdfqd.gif.png.zip';
    if(preg_match($mode, $file,$matches)){
        print_r($matches);
    }else{
        echo "不成功";
    }

    //贪婪和分组获取的案例,ubb;

    $string = 'This is a [b]php5[/b], This is a [b]php6[/b]';
    $mode = '/\[b\](.*)\[\/b\]/U';
    $replace = '<strong>$1</strong>';
    echo preg_replace($mode, $replace, $string);
    echo $string;

     $string = '我是被index.php 导入的{$name}';
    $mode = '/\{\$(\w+)\}/';
    $replace = '<strong>$1</strong>';
    echo preg_replace($mode, $replace, $string);
    // echo $string;


   $str = '{foreach $array(key, value)}';
   $patternForeach = '/\{foreach\s+\$(\w+)\s*\((\w+)\s*,\s*(\w+)\)\}/';
   preg_match($patternForeach, $str,$matches);
   print_r($matches);

    $str = '{include "test.php"}';

   $pattern = '/\{include\s+["\'](.*)["\']\}/';
   preg_match($pattern, $str,$matches);
   print_r($matches);

*/
$pattern = '/.*/xs';
$str = "cdcds\nabc";
preg_match($pattern, $str,$matches);

print_r($matches);

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5000次
    • 积分:320
    • 等级:
    • 排名:千里之外
    • 原创:27篇
    • 转载:10篇
    • 译文:0篇
    • 评论:0条
    文章分类