PHP學習之路六(php與正則表達式)

[php] 
<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> 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *