五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

PHP正則表達(dá)式核心技術(shù)完全詳解 第4節(jié) php正則查找匹配處理函數(shù)使用心得與技巧

2020-10-02 19:14 作者:極客小俊GeekerJun  | 我要投稿

? ?極客小俊

?一個專注于web技術(shù)的80后

你不用拼過聰明人,你只需要拼過那些懶人 你就一定會超越大部分人!


php中兼容Perl的正則表達(dá)式處理函數(shù)

在我們說php系統(tǒng)自帶的正則處理函數(shù)之前,我們先要回憶一下在PHP中正則表達(dá)式的組成元素有哪些? 如下:

  1. 定界符號

  2. 原子

  3. 元字符、量詞

  4. 模式修正符

例如:一個匹配URL的正則表達(dá)式如下

?$url="/(https?|ftps?):\/\/(www|mail|news)\.([^\.\/]+)\.(com|org|net)/i";

應(yīng)用如下案例:

?$pattern="/(https?|ftps?):\/\/(www|mail|news)\.([^\.\/]+)\.(com|org|net)/i";
?$string='http://www.baidu.com';
?preg_match($pattern, $string,$arr);
?show($arr);

PHP中正則表達(dá)式與PHP正則處理函數(shù)結(jié)合使用 在PHP中正則表達(dá)式不能獨立使用、它只是一種用來定義字符串的規(guī)則模式、所以必須在、 相應(yīng)的正則表達(dá)式函數(shù)中應(yīng)用、才能實現(xiàn)相應(yīng)的功能! 例如 匹配、分割、查找、替換 所以有了正則,再加上PHP正則處理函數(shù)來使用這個正則表達(dá)式,才能對字符串進行 分割、匹配、查找及替換等工作。

把一個正則表達(dá)式用在分割的函數(shù)中, 則使用這個正則表達(dá)式對字符串進行分割 把一個正則表達(dá)式用在匹配的函數(shù)中, 則使用這個正則表達(dá)式對字符串進行匹配 把一個正則表達(dá)式用在替換的函數(shù)中, 則使用這個正則表達(dá)式對字符串進行替換 把一個正則表達(dá)式用在查找的函數(shù)中, 則使用這個正則表達(dá)式對字符串進行查找

小提示: 能使用字符串處理函數(shù)完成的功能,就不要使用正則表達(dá)式處理函數(shù) 性能問題

PHP查找匹配正則函數(shù):

preg_match(參數(shù)..) 作用: 在第一次匹配后將會停止搜索、返回正則的匹配次數(shù) ,如果匹配返回1,不匹配返回0 發(fā)生錯誤返回false! 參數(shù)列表如下: 參數(shù)1:正則表達(dá)式 參數(shù)2:字符串 參數(shù)3:自定義存放結(jié)果數(shù)組 參數(shù)4:獲取目標(biāo)字符串的開始下標(biāo)值常量, 參數(shù)5:搜索目標(biāo)字符的開始位置 案例如下:

?$string='www.baidu.com';
?$pattern="/baidu/i";
?preg_match($pattern, $string,$arr);
?show($arr);

preg_match_all(參數(shù)..) 作用:在匹配找到第一個后, 繼續(xù)從這個匹配位置搜索 直到把所有符合正則的都匹配出來 然后返回完整匹配數(shù)量次數(shù),如果返回0次 說明沒有匹配,發(fā)生錯誤返回false.! 參數(shù)列表如下: 參數(shù)1:正則表達(dá)式 參數(shù)2:字符串 參數(shù)3:自定義存放結(jié)果數(shù)組 參數(shù)4:以什么方式排列結(jié)果常量: PREG_SET_ORDER、 參數(shù)5:搜索目標(biāo)字符的開始位置 案例如下:

?$string='www.baidu.com www.sina.com www.bilibili.com';;
?$pattern="/www\..+?(\.com)/";
?preg_match_all($pattern, $string,$arr);
?show($arr);

查找匹配小案例

例1:查找字符串中出所有的URL 并且把所有URL地址加上紅顏色后打印輸出字符串。 如下

? $string='北京市朝陽區(qū)http://www.baidu.com中國區(qū)PHP開發(fā)
? ? ? ? ? ? ?北京市朝陽區(qū)http://www.baidu.com中國區(qū)PHP開發(fā)
? ? ? ? ? ? ?北京市朝陽區(qū)http://www.baidu.com中國區(qū)PHP開發(fā)
? ? ? ? ? ? ?北京市朝陽區(qū)http://www.baidu.com中國區(qū)PHP開發(fā)
? ? ? ? ? ? ?北京市朝陽區(qū)http://www.baidu.com中國區(qū)PHP開發(fā)
? ? ? ? ? ? ?北京市朝陽區(qū)http://www.baidu.com中國區(qū)PHP開發(fā)
? ? ? ? ? ? ?北京市朝陽區(qū)http://www.baidu.com中國區(qū)PHP開發(fā)
? ? ? ? ? ? ?北京市朝陽區(qū)http://www.baidu.com中國區(qū)PHP開發(fā)
? ? ? ? ? ? ?北京市朝陽區(qū)http://www.baidu.com中國區(qū)PHP開發(fā)
? ? ? ? ? ? ?北京市朝陽區(qū)http://www.baidu.com中國區(qū)PHP開發(fā)
? ? ? ? ? ? ?北京市朝陽區(qū)http://www.baidu.com中國區(qū)PHP開發(fā)
? ? ? ? ? ? ?北京市朝陽區(qū)http://www.baidu.com中國區(qū)PHP開發(fā)';
?
?//處理之前
?echo nl2br($string);
?echo '<hr>';
?
?$pattern="/(?:http[s]?|ftp?):\/\/(?:www|mail)\.[^\.\/]*\.(?:com|org|net)/i";
?preg_match_all($pattern, $string,$arr);
?$num=0;
?foreach ($arr[0] as $key=>$val){
? ? ?$string=str_replace($val, '<span style="color:red;">'.$val.'</span>', $string,$count);
? ? ?$num+=$count;
?}
?//處理之后
?echo nl2br($string).'<br>替換的次數(shù)是'.$num.'次';

例2:查找字符串中出所有的URL 并且把所有URL地址替換成超級鏈接然后打印輸出字符串, 如下:

?$string='北京市朝陽區(qū)http://www.sina.com中國區(qū)PHP開發(fā)
? ? ? ? ? ? ?北京市朝陽區(qū)http://www.baidu.com中國區(qū)PHP開發(fā)
? ? ? ? ? ? ?北京市朝陽區(qū)http://www.163.com中國區(qū)PHP開發(fā)
? ? ? ? ? ? ?北京市朝陽區(qū)http://www.wangm.com中國區(qū)PHP開發(fā)
? ? ? ? ? ? ?北京市朝陽區(qū)http://www.albb.com中國區(qū)PHP開發(fā)';
?
?//處理之前
?echo nl2br($string);
?echo '<hr>';
?
?
?function setURL($string){
? ? ?$pattern="/(?:http[s]?|ftp?):\/\/(?:www|mail)\.[^\.\/]*\.(?:com|org|net)/i";
? ? ?preg_match_all($pattern, $string,$arr);
? ? ?
? ? ?foreach($arr[0] as $k=>$v){
? ? ? ? ?$replace='<a href="'.$v.'">'.$v.'</a>';
? ? ? ? ?$string=str_replace($v, $replace, $string);
? ? ?}
? ? ?return nl2br($string);
?}
?
?echo '<hr>';
?//處理之后
?echo setURL($string);

在這里插入圖片描述





如果喜歡話請 點贊 ?投幣 ?收藏 一鍵三連 ?

大家的支持就是我堅持下去的動力!

不要忘了?? 關(guān)注 ??哦!





PHP正則表達(dá)式核心技術(shù)完全詳解 第4節(jié) php正則查找匹配處理函數(shù)使用心得與技巧的評論 (共 條)

分享到微博請遵守國家法律
南丹县| 大荔县| 临武县| 陇川县| 青岛市| 木里| 越西县| 铁岭县| 岳西县| 中卫市| 广西| 孝昌县| 岫岩| 广灵县| 托克逊县| 平邑县| 阿拉善右旗| 灵台县| 文登市| 锡林浩特市| 屏东市| 泸州市| 政和县| 齐齐哈尔市| 昌图县| 咸宁市| 文水县| 钦州市| 柳林县| 金寨县| 临沭县| 英山县| 德阳市| 安达市| 定兴县| 通城县| 定襄县| 镇安县| 渑池县| 惠州市| 阜康市|