码迷,mamicode.com
首页 > Web开发 > 详细

php基础30:正则匹配-量词

时间:2016-12-25 13:51:28      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:mod   mat   jsp   正则表达   字符   cccccc   equal   pcc   正则   

<?php

    //正则表达式
    
    //1.第一个正则表达式
    if("a"=="a"){
        echo "equal";
    }else{
        echo "noequal";
    }
    echo "<hr>";

    //第一个参数表示匹配模式,第二个参数匹配的字符串
    echo (preg_match(‘/php/‘,"php"));
    echo (preg_match(‘/php/‘,"php222"));
    echo (preg_match(‘/php/‘,"p2h2p2"));

    $modle = "/php/";
    $string = "php";
    if (preg_match($modle, $string)) {
        echo "success";
    }else{
        echo "fail";
    };
    echo "<hr>";

    //什么叫做匹配?:按照模式来匹配
    //匹配与相等是不同的概念

    //2.量词+:匹配任何至少包括一个前导字符串(1个或者多个)
    // 前导:前面一个字符,+的前导是h
    // h+ 的意思是只要要包括1个h
    $model = "/ph+p/";
    $string = "phhhhhhhp";
    echo(preg_match($model, $string));//1

    $model = "/ph+p/";
    $string = "phhhgggggggggp";
    echo(preg_match($model, $string));//0

    $model = "/ph+p/";
    $string = "pp";
    echo(preg_match($model, $string))."<hr>";//0


    // 3.量词*:匹配任包括0个或者多个前导字符串(0个或者多个)
    // * 虽然可以是0个,但是前导字符不能更改,更就不匹配了
    $model = "/ph*p/";
    $string = "php";
    echo(preg_match($model, $string));//1

    $model = "/ph*p/";
    $string = "pp";
    echo(preg_match($model, $string));//1

    $model = "/ph*p/";
    $string = "pbbbbp";
    echo(preg_match($model, $string));//0
    echo "<hr>";

    // 3.量词?:匹配任何包含1个或者0个前导字符
    $model = "/ph?p/";
    $string = "pp";
    echo(preg_match($model, $string));//1

    $model = "/ph?p/";
    $string = "php";
    echo(preg_match($model, $string));//1

    $model = "/ph?p/";
    $string = "phhhp";
    echo(preg_match($model, $string))."<hr>";//0

    //4.量词(.)匹配任意一个字符
    //n个点匹配n个任意字符
    $model = "/p.p/";
    $string = "php";
    echo(preg_match($model, $string));//1

    $model = "/p..p/";
    $string = "phrp";
    echo(preg_match($model, $string));//1

    $model = "/p..p/";
    $string = "php";
    echo(preg_match($model, $string));//0

    $model = "/p..p/";
    $string = "phhhp";
    echo(preg_match($model, $string))."<hr>";//0

    //5.(.与*)的配合
    //(.*)表示任意前导字符,0个或者多个
    $model = "/p.*p/";
    $string = "php";
    echo(preg_match($model, $string));//1

    $model = "/p.*p/";
    $string = "phhhhhhp";
    echo(preg_match($model, $string));//1

    $model = "/p.*p/";
    $string = "pp";
    echo(preg_match($model, $string))."<hr>";//1

    // 6.量词{x}:表示前导必须是3个
    $model = "/ph{3}p/"; // h{3}匹配3个h
    $string = "phhhp";
    echo(preg_match($model, $string));//1

    $model = "/ph{3}p/";
    $string = "php";
    echo(preg_match($model, $string))."<hr>";//0

    //7.量词{x,y}:匹配x-y个前导字符串
    $model = "/ph{3,5}p/";
    $string = "phhhp";
    echo(preg_match($model, $string));//1

    $model = "/ph{3,5}p/";
    $string = "phhhhp";
    echo(preg_match($model, $string));//1

    $model = "/ph{3,5}p/";
    $string = "phhhhhp";
    echo(preg_match($model, $string))."<hr>";//1

    //8.量词{x,}:匹配至少x个前导字符串
    $model = "/ph{3,}p/";
    $string = "phhhp";
    echo(preg_match($model, $string));//1

    $model = "/ph{3,}p/";
    $string = "phhp";
    echo(preg_match($model, $string));//0

    $model = "/ph{3,}p/";
    $string = "phhhhp";
    echo(preg_match($model, $string))."<hr>";//1

    //9.$:匹配字符串的行尾
    //$一般加载字符串的尾巴上,表示从尾巴开始匹配(以xxx结尾)
    $model = "/php/";
    $string = "cccccccccccccccc php ccccccccccc";
    echo(preg_match($model, $string));//1

    $model = "/php$/";
    $string = "cccccccccccccccc php ccccccccccc";
    echo(preg_match($model, $string));//0

    $model = "/php$/";
    $string = "cccccccccccccccccccccccccccphp";
    echo(preg_match($model, $string))."<hr>";//1

    //10. ^ 表示从头开始匹配
    // 表示 以 xxx 开始
    $model = "/^php/";
    $string = "cccccccccccccccccccccccccccphp";
    echo(preg_match($model, $string));//0

    $model = "/^php/";
    $string = "phpcccccccccccccccccccccccccccphp";
    echo(preg_match($model, $string));//1

    //如果^和$一起使用,表示匹配一模一样的,那就使用==即可
    $model = "/^php$/";
    $string = "phpcccccccccccccccccccccccccccphp";
    echo(preg_match($model, $string))."<hr>";//1

    // 10. | : 匹配字符串的左边或者右边
    //条件选择符号
    $model = "/php|jsp/";
    $string = "php";
    echo(preg_match($model, $string));//1

    $model = "/php|jsp/";
    $string = "jsp";
    echo(preg_match($model, $string));//0

    $model = "/php|jsp/";
    $string = "asp";
    echo(preg_match($model, $string));//0

    $model = "/php|jsp|asp/";
    $string = "asp";
    echo(preg_match($model, $string))."<hr>";//1

    // 11. () : 包围一个字符分组或者
    //讲到后面才可以理解

?>

 

php基础30:正则匹配-量词

标签:mod   mat   jsp   正则表达   字符   cccccc   equal   pcc   正则   

原文地址:http://www.cnblogs.com/noper/p/6219282.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!