摘要:資源收錄正則函數注不同于字符串函數,為主動傳值,指示替換次數匯集全網優質網址及資源的中文上網導航。要注意替換順序,如果先將網址替換為標簽,再去除所有標簽,會將鏈接也去除其他正則函數帶回調函數匯集全網優質網址導航。
1.字符串匹配與查找
a.如果可以使用字符串處理函數處理的,不要使用正則表達式(功能強,效率低)
b.使用正則表達式匹配函數:
(1)preg_match:匹配用戶名/email/url
"; } if(!preg_match("/w+([+-.]w+)*@w+([-.]w+)*.w+([-.]w+)*/i",$_POST["email"])){ echo "不是正確的email格式
"; } if(!preg_match("/(https?|fps?)://(www|mail|bbs|fps).(.*?).(net|com|org|cn)([w+./=?&\%]*)?/",$_POST["url"],$arr)){ echo "不是正確的url格式
"; }else{ echo ""; print_r($arr); echo ""; /* Array ( [0] => https://www.baidu.com/ [1] => https [2] => www [3] => baidu [4] => com [5] => / )*/ } } ?>
(2)preg_match_all:以匹配url為例展示,可以匹配全部url,返回多維數組(視子模式而定),可以傳入第四個參數,以改變多維數組的構成模式
"; }else{ echo ""; print_r($arr); echo ""; /* Array ( [0] => Array ( [0] => http://www.liuxue86.com/a/3101593.html [1] => https://www.segmentfault.com/write?draftId=1220000010640798 ) [1] => Array ( [0] => http [1] => https ) [2] => Array ( [0] => www [1] => www ) [3] => Array ( [0] => liuxue86 [1] => segmentfault ) [4] => Array ( [0] => com [1] => com ) [5] => Array ( [0] => /a/3101593.html [1] => /write?draftId=1220000010640798 ) )*/ } ?>
(3)preg_grep:對多個字符串的數組進行匹配,如下:
1111111111 [3] => 2222222222 ) ?>
c.使用字符串匹配函數:strstr/strpos/substr
function getFileName($url){ $str=strrpos($url,"/")+1; return substr($url,$str); } echo getFileName("https://segmentfault.com/write?draftId=1220000010640798/aaa.php");
2.字符串的分割與連接
a.使用字符串函數:explode/implode/join
b.使用正則函數:preg_split ( $pattern , $subject [,$limit = -1 [,$flags = 0 ]] ),其中limit為分割的總個數(即數組長度),-1表示不限制個數,flags為可選系統參數
注:字符偏移量為該字符相對于首字符的位置
aaaaaa [1] => bbbbb. ccccccc ) ?>
3.字符串的替換
a.字符串函數:str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ),&$count返回替換次數,由于混合類型,因此可以以數組替換數組,如下:
"; echo $count; ?>
b.正則函數:mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
*注1*:&$count不同于字符串函數,為主動傳值,指示替換次數
網址及資源
的中文上網導航。及時收錄影視、音樂、小說、游戲等分類的網址和內容,讓您的網絡生活更簡單精彩。"; $result=preg_replace("/<[/!]*?[^<>]*?>/is","",$str,1);//替換HTML標簽,只替換了一次 echo $result."
"; ?>
*注2*:替換項$replacement可以使用12等借用正則中子模式的內容,如下: