逝去的青春
php与正则表达式
2012-12-23 jao
<html> 

    <head>  

        <title>正则表达式和样式匹配</title> 

    </head> 

    <body> 

        <?php  

            $find="love";//定义要查找的变量 

            $result=preg_match("/$find/","I love you,xiaohei!");//第一个参数为要查找 

                                                                //变量,第二个参数为查找字符串 

            //查找 前后带空格的"you",返回false 

            @$result1=preg_match("\byou\b/","I love you,xiaohei!"); 

            if ($result){ 

                echo "匹配成功!<br>"; 

            }else { 

                echo "匹配失败!<br>"; 

            }            

            if ($result1){ 

                echo "\byou\b/"."匹配成功!<br>"; 

            }else { 

                echo "\byou\b/"."匹配失败!<br>"; 

            } 

         

        ?> 

         

    <?php  

    /*  ^元字符被称为行首端位。。匹配字符串起始找到的样式。

     *  判断获奖名单("李兴乐 王长超 小黑")中是否有王长超,在判断,王长超,李兴乐是否为第一个

     * */ 

    $string="李兴乐 王长超 小黑"; 

    $name1="王长超"; 

    $name2="李兴乐"; 

    if (ereg("王长超",$string)){//判断是否 有王长超 

        echo "有王长超!<br>"; 

    } 

    if(ereg("^李兴乐",$string)){//判断行首是否为李兴乐 

        echo '李兴乐为第一个<br>'; 

    } 

     if(ereg("^王长超",$string)){ 

        echo "王长超为第一个<br>"; 

    } 

    if(ereg("小黑$",$string)){  //判断行尾 是否为 小黑 

        echo "小黑为最后一个<br>"; 

    } 

     

    ?>    

    <?php  

        //邮箱格式判断 

        //元字符+ 用来匹配前面的子表达式 一次或多次..{2}表示匹配的次数喂两次。{2,4}重复 2-4次 

        $myemail="lixingle123@qq.com"; 

        if (ereg("([0-9a-zA-Z]+)([@])([0-9a-zA-Z]+)([.])([0-9a-zA-Z]{2,4})",$myemail)){ 

            echo $myemail."格式正确<br>"; 

        }else { 

            echo  $myemail."格式不正确,请重新输入!<br>"; 

        } 

    ?> 

    <?php  

    //匹配字符格式 

    //判断日期格式是否为 YYYY-MM-DD格式 

       $mydate="2012-11-26"; 

       if (ereg("([0-9]{4})(-)([0-9]{2})(-)([0-9]{2})",$mydate,$regs)){      

        echo $regs[1]."年$regs[3]月$regs[5]日<br>";    

       }else { 

        echo "时间格式错误!<br>"; 

       } 

        

        

        

        

    ?> 

    <?php  

    /*PHP支持Perl样式的正则表达式,

     * 样式匹配函数:

     * int preg_match(string $pattern,string $subject[,array $matches[,int flages]]);

     * int preg_match_all(string $pattern,string $subject[,array $matches[,int flages]]);

     * preg_match()和preg_match_all()用法相似,但后者是匹配整个字符串,而不是执照第一个,并且返回找到的样式数量

     * 

     * */ 

     

        $string ="I am studing PHP,PHP is so easy.PHP"; 

        $result=preg_match_all("/PHP/i",$string,$matches,PREG_OFFSET_CAPTURE); 

     

        if ($result==true){ 

            echo "$result PHP was found.<br>"; 

            print_r($matches); 

            echo "<br>";               

        }else { 

            echo "PHP was not found.<br>"; 

            print_r($matches); 

            echo "<br>"; 

        } 

    ?> 

     

     

    </body> 

 

</html>