国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP入門教程之正則表達式基本用法實例詳解(正則匹配,搜索,分割等)

2024-05-04 23:49:41
字體:
來源:轉載
供稿:網友

本文實例講述了PHP正則表達式基本用法。分享給大家供大家參考,具體如下:

Demo1.php

<?php //嘗試著寫第一個正則表達式 //第一個參數,表示模式(就是和字符串去比較,匹配) //第二個參數,表示字符串 //如果整個函數模式和字符串比較后匹配了,那么返回真(true)1,否則返回假(false)0 //什么叫匹配,就是一個一個的比較過去 //按照什么規則??按照模式來匹配 //只要模式全部通過,那么就通過 //匹配和相等是兩個概念 //因為目前的模式是一個整體,php //所以,字符串只要有連在一起的 php 三個字符,不管怎樣的字符串都能匹配 $mode = '/php/'; //規則模式 $string = 'fsdfsdfsdphpfsdfs'; //字符串 //echo preg_match($mode,$string); if( preg_match($mode,$string)){  echo '匹配'; }else{  echo '不匹配'; } //echo preg_match('/php/','php');// if('a'=='a'){//  echo '相等';// }else {//  echo '不相等';// }?>

Demo2.php

<?php //什么叫前導,前面的一個字符 //+ 號的前導字符就是 h //h+ 的意思是,至少包含一個 h //+ 號的意思 //$mode = '/ph+p/'; //規則模式 //h* 的意思是,零個或者多個 h //* 號雖然可以是零個,但是前導字符不能更改,更改了,就不匹配了 //$mode = '/ph*p/'; //規則模式 //h? 的意思是,零個或者一個 h //? 多個前導字符不行 //$mode = '/ph?p/'; //規則模式 //.的意思是,任意一個字符,所以,兩個點,就是任意兩個字符 //$mode = '/p.p/'; //規則模式 //.* 表示前導任意字符,并且零個或者多個 //$mode = '/p.*p/'; //規則模式 //h{3} 表示,前導必須是3 個, //$mode = '/ph{3}p/'; //規則模式 //h{3,5}表示,前導必須是 3 到 5 個 //$mode = '/ph{3,5}p/'; //規則模式 //h{3,} 表示,前導至少 3 個 h //$mode = '/ph{3,}p/'; //規則模式 //$符號,一般加在模式的字符串尾巴上 //表示從尾巴開始匹配 //$mode = '/php$/'; //規則模式 //^表示,從開頭進行匹配 //$mode = '/^php/'; //規則模式 //^ 和 $ 一起用的,基本上不要用正則了,直接用 == 號即可 //$mode = '/^php$/'; //規則模式 //| 是一個條件選擇符,如果有其中一個,即可匹配。 //$mode = '/php|asp/'; //規則模式 //() $mode = '/(this) (is) (php|asp)/'; //規則模式 $string = 'this is php'; //字符串 //echo preg_match($mode,$string); if( preg_match($mode,$string)){  echo '匹配'; }else{  echo '不匹配'; }?>

Demo3.php

<?php //元子符 //[]中括號,是一種正則里的語法 //里面的東西表示任意一個即可 //[a-z] 表示 26 個字母中,隨便其中一個 //$mode = '/[a-z]/'; //規則模式 //[0-9] 表示 0-9,隨便其中一個 //$mode = '/[0-9]/'; //規則模式 //[asv] 其中一個 //$mode = '/[asv]/'; //規則模式 //[a-zA-Z0-9_] 表示其中一個匹配 [a-zA-Z0-9_] 中的任意一個 //$mode = '/[a-zA-Z0-9_]/'; //規則模式 //不是在開頭匹配行首的^,而是中括號里的 ^ //[^] 表示匹配除了abc 外都能匹配的字符串 //$mode = '/[^abc]/'; //規則模式 //為了讓人們使用更加的方便,/w 代表 [a-zA-Z0-9_] //$mode = '/[/w]/'; //規則模式 ///W 正好和 /w相反 //$mode = '/[/W]/'; //規則模式 ///d 和 [0-9] 一樣 //$mode = '//d/'; //規則模式 ///D 和 [^0-9] 一樣 //$mode = '//D/'; //規則模式 ///s匹配任何空白字符 //$mode = '//s/'; //規則模式 ///S不包含空白字符 //$mode = '//S/'; //規則模式 ///b表示到達了單詞的邊界,如果沒有到達就不匹配,邊界可以理解為空格 //$mode = '/php/b/'; //規則模式 ///B 表示沒有到達邊界 //$mode = '/php/B/'; //規則模式 //因為 + 號是正則里的特殊字符 //如果要匹配特殊字符的話,必須加上 / $mode = '/p/+p/'; //規則模式 $string = 'p+p'; //字符串 if( preg_match($mode,$string)){  echo '匹配'; }else{  echo '不匹配'; }?>

Demo4.php

<?php //修飾符 //修飾符放在 // 的外面 //i 表示不區分大小寫// $mode = '/php/i'; //規則模式// $string = 'PHP'; //字符串 //m 表示匹配首尾的時候,如果遇到換行,也應該承認是結尾// $mode = '/php$/m'; //規則模式// $string = "this is a php/n ,is goods"; //字符串 //x 表示忽略掉規則模式中的空白字符// $mode = '/php/x'; //規則模式// $string = 'ph p'; //字符串 //A 表示必須從頭開始匹配 $mode = '/php/A'; //規則模式 $string = 'phpfsdfd'; //字符串 if( preg_match($mode,$string)){  echo '匹配'; }else{  echo '不匹配'; }?>

Demo5.php

<?php //搜索數組中的相匹配的字符串 //preg_grep() 函數 $language = array('php','asp','jsp','python','ruby'); //找出最流行的 3p 語言 //這三門語言的匹配共同點是什么,最后結尾都是 p //結尾匹配 p /p$/ //$mode = '/p$/'; //打印出開頭為 p 的語言 $mode = '/^p/'; //python 蟒蛇語言,在國外有取代 PHP 的傳聞 print_r(preg_grep($mode,$language));?>

Demo6.php

<?php //搜索模式,最后返回的是真或者是假,1,10 echo preg_match('/php[1-6]/','php5');?>

Demo7.php

<?php //電子郵件的小案例 //通過拆分的方法分組 $mode = '/^([/w/.]{2,255})@([/w/-]{1,255}).([a-z]{2,4})$/';//模式不能缺少 $string = 'oneStopWeb@163.com'; if(preg_match($mode,$string)){  echo '電子郵件合法'; }else{  echo '電子郵件不合法'; }?>

Demo8.php

<?php //匹配全局正則 //將字符串的所有匹配得到的結果放到一個數組變量里 preg_match_all('/php[1-5]/','php5fsdfsdphp6fsdfsdfphp4',$out); print_r($out);//Array ( [0] => Array ( [0] => php5 [1] => php4 ) ) echo $out[0][0];//php5?>

Demo9.php

<?php //定界定則 echo preg_quote('PHP is $150'); //PHP is /$150?>

Demo10.php

<?php //搜索匹配的結果,然后替換掉 //第一個參數,存的是正則模式 //第二參數,放的是替換掉的字符串 //第二個參數,字符 //將第三個參數的字符串的 php5,php6 替換成了 oneStopWeb echo preg_replace('/php[1-6]/','oneStopWeb','This is a php5,This is a php6'); //This is a oneStopWeb,This is a oneStopWeb?>

Demo11.php

<?php //貪婪和分組獲取的案例,ubb //我要將這個 [b][/b] 換成 <strong></strong> //注意一個問題,這個時候的 [] 中括號,是字符串的括號,而不是語法[a-z] //. 表示匹配任意字符一個,加上一個 * 號表示匹配零個或者多個 //用括號分為三組,那么第一組就是/1,第二組就是/2,第三組就是/3 //目前只有1 組,/1 //第一問題,第一個[b]和最后一個[/b]匹配了 //解決貪婪匹配。 $mode = '/(/[b/])(.*)(/[//b/])/U';//U 禁止貪婪 $replace = '<strong>/2</strong>'; $string = 'This is a [b]php5[/b],This is a [b]php6 [/b]'; //echo $string; echo preg_replace($mode,$replace,$string);?>

Demo12.php

<?php //用正則表達來進行分割 //如果沒有 [] 符號,就表示,要同時滿足 print_r(preg_split('/[.@]/','oneStopWeb@163.com')); //Array ( [0] => oneStopWeb [1] => 163 [2] => com )?>

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 梅河口市| 稷山县| 四川省| 乳源| 喀喇沁旗| 北票市| 察雅县| 西乌| 温泉县| 全南县| 北宁市| 科技| 沐川县| 壶关县| 永靖县| 罗定市| 鹤岗市| 民县| 东乡族自治县| 徐州市| 广饶县| 枣庄市| 黄浦区| 平遥县| 金秀| 定西市| 连平县| 安阳市| 邢台县| 凤山市| 德庆县| 泉州市| 抚远县| 高清| 武穴市| 多伦县| 佛学| 博乐市| 华宁县| 贺州市| 大方县|