zoukankan      html  css  js  c++  java
  • PHP 正则表达式

    1./”是定界符,“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。同时为了正则更加灵活,引入了元字符,即“+”, “*”,以及 “?”。

    (1)+”元字符规定其前导字符必须在目标对象中连续出现一次或多次

        比如:/php+/,能够与“phpp”匹配,即字母ph后面连续出现一个或多个字母p的字符串相匹配。

    (2)*”元字符规定其前导字符必须在目标对象中出现零次或连续多次

        比如:/php*/能够与“phpddt”相匹配,即ph后面可以有0个或多个p

    (3)?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。

        比如:/php?/能够“pher”匹配,即phh后面可以有0个或者1p

    其他重要的元字符:

       s:用于匹配单个空格符,包括tab键和换行符;

       S:用于匹配除单个空格符之外的所有字符;

       d:用于匹配从09的数字;

       w:用于匹配字母,数字或下划线字符;

       W:用于匹配所有与w不匹配的字符;

       . :用于匹配除换行符之外的所有字符。

       示例:/s+/用于匹配目标对象中的一个或多个空格字符

    2.定位符用于规定匹配模式在目标对象中的出现位置。常用的有“^$” 以及 “B

      (1)^”定位符规定匹配模式必须出现在目标字符串的开头

      (2)$”定位符规定匹配模式必须出现在目标对象的结尾

      (3)定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一

      (4)B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内

    3.php的正则匹配模式非常灵活,可以指定某一范围

     

    例如:

    /[A-Z]/

         上述正则表达式将会与从AZ范围内任何一个大写字母相匹配。

    /[a-z]/

         上述正则表达式将会与从az范围内任何一个小写字母相匹配。

    /[0-9]/

         上述正则表达式将会与从09范围内任何一个数字相匹配。

    /([a-z][A-Z][0-9])+/

         上述正则表达式将会与任何由字母和数字组成的字符串

    4.可以同时与多种模式选择匹配

         如/phpddt.com|phpddt|100/可以与“phpddt.com” “phpddt” “100”相匹配

    5.否定符 “[^]”规定目标对象中不能存在模式中所规定的字符串

         例如:[^phpddt]匹配除了phpddt字符外的所有东西

     

     代码示例:

        <?php
         
        //preg_match("正则表达式","字符串")用于在字符串中查找匹配项
         
        $email = "987044391@qq.com";
        if (preg_match("/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([.a-zA-Z0-9_-])+([.a-zA-Z0-9_-]+)+([.a-zA-Z0-9_-])$/",$email)){
            echo '匹配成功<hr />';
        }else {
            echo '匹配失败<hr />';
        }
         
        //preg_quote("字符串") 在每个有正则表达式语法前面加入一个转义字符即
         
        $str = "php点点通是一个学习php的网站,(⊙o⊙)…";
        echo preg_quote($str);
        echo "<hr />";
         
        //preg_split("正则","字符串")分割字符串
        $php = "+php++点点通++++是好网站";
        $field = preg_split("/+{1,}/",$php);
        foreach($field as $f){
            echo $f." ";
        }
        echo "<hr />";
        //preg_grep("正则","字符串") 与数组匹配后返回新数组
        $phpddt = array("php点点通","php100","呵呵","hahaha","phpchina");
        $item = preg_grep("/^php/",$phpddt);
        print_r($item);
         
        echo "<hr />";
        //preg_replace("正则","替换内容","原字符串")    很重要,很常用
        $a = "欢迎光临http://www.phpddt.com/";  //给http开头的加上超链接
        echo preg_replace("/http://(.*)//","<a href="${0}">${0}</a>","$a");
         
        ?>

     运行结果如下:

    匹配成功
    php点点通是一个学习php的网站,(⊙o⊙)…
    php  点点通  是好网站

    Array ( [0] => php点点通 [1] => php100 [4] => phpchina )

    欢迎光临http://www.phpddt.com/

     

  • 相关阅读:
    State模式
    Visitor模式,Decorator模式,Extension Object模式
    系统报错undefine not symbol armv7
    decompressedResponseImageOfSize:completionHandler:]_block_invoke
    App Transport Security has blocked a cleartext HTTP
    UIButton 左对齐 省略号最右边
    ActiveAndroid问题no such table解决总结
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'
    fun下载内容批量收集
    The `brew link` step did not complete successfully
  • 原文地址:https://www.cnblogs.com/feiwu123/p/5238855.html
Copyright © 2011-2022 走看看