PHP正则表达式核心技术详解第4节PHP正则表达式搜索与匹配处理函数使用技巧与心得你一定会超越大多数人!思不@吉客小俊正式登场原创企业博客:?极客君?B站地址:?哔哩哔哩?在内置正则处理函数之前,我们首先要回忆一下PHP中的正则表达式有哪些元素呢?如下:定界符号原子元字符,量词模式修饰符例如:正则表达式匹配URL如下$url="/(https?|ftps?):\/\/(www|mail|news)\.([^\.\/]+)\.(com|org|net)/i";适用以下情况:$pattern="/(https?|ftps?):\/\/(www|mail|news)\.([^\.\/]+)\.(com|org|net)/我”;$string='http://www.baidu.com';preg_match($pattern,$string,$arr);show($arr);==PHP中的正则表达式==and==PHP正则处理函数==组合使用PHP中的正则表达式不能单独使用,它只是用来定义字符串的正则模式,所以必须在对应的正则表达式函数中应用才能实现对应的功能!比如匹配、拆分、查找、替换,于是就有了正则表达式,PHP正则处理函数就是利用这个正则表达式对字符串进行拆分、匹配、查找、替换。在split函数中使用一个正则表达式,然后使用这个正则表达式来拆分字符串在匹配函数中使用一个正则表达式,使用这个正则表达式来匹配字符串放一个正则表达式如果在替换函数中使用了公式,那么使用这个正则表达式来替换字符串如果在搜索函数中使用了正则表达式,那么就使用这个正则表达式来搜索字符串==提示==:是使用字符串处理函数完成的功能,不要使用正则表达式来处理函数的性能问题。匹配次数,匹配则返回1,不匹配则返回0,出错则返回false!参数列表如下:参数1:正则表达式参数2:字符串参数3:自定义存储结果数组参数4:获取目标字符串的开始下标值常量,参数5:搜索目标字符的起始位置如下:$string='www.baidu.com';$pattern="/baidu/i";preg_match($pattern,$string,$arr);show($arr);==preg_match_all==(parameter..)功能:找到第一个匹配后,从这个匹配位置开始继续查找,直到匹配到所有符合正则的匹配,然后返回完整的匹配数,如果返回0次表示不匹配,错误返回false.!参数列表如下:参数1:正则表达式参数2:字符串参数3:自定义存储结果数组参数4:如何排列结果常量:PREG_SET_ORDER,参数5:搜索目标字符起始位置示例为如下:$string='www.baidu.comwww.sina.comwww.bilibili.com';$pattern="/www\..+?(\.com)/";preg_match_all($pattern,$string,$arr);显示($arr);Findmatchingsmallcase例1:查找字符串中的所有URL,将所有URL地址都加红后打印出字符串。下面$string='北京朝阳区http://www.baidu.com中国区PHP开发北京朝阳区http://www.baidu.com中国区PHP开发北京朝阳区http://www.baidu.com中国PHP发展北京朝阳区http://www.baidu.com中国PHP发展北京朝阳区http://www.baidu.com中国PHP发展北京朝阳区http://www.baidu.combaidu.comPHP中国PHP开发,北京市朝阳区http://www.baidu.com中国PHP开发,北京市朝阳区http://www.baidu.com中国PHP开发,北京市朝阳区http://www..baidu.com中国PHP发展北京朝阳区http://www.baidu.com中国PHP发展北京朝阳区http://www.baidu.com中国PHP发展北京朝阳区http://www.baidu.comPHPdevelopmentinChina';//处理前echonl2br($string);echo'
';$pattern="/(?:http[s]?|ftp?):\/\/(?:www|邮件)\.[^\.\/]*\.(?:com|org|net)/i";preg_match_all($pattern,$string,$arr);$num=0;foreach($arr[0]as$key=>$val){$string=str_replace($val,'
替换次数为'.$num.'次';示例2:查找字符串URL中的所有字符,并把所有的URL地址替换为超链接,打印出字符串,如下:$string='北京朝阳区http://www.sina.com中国区PHP开发北京朝阳区http://www.baidu.comPHP开发inChina北京市朝阳区http://www.163.com中国PHP开发北京朝阳区http://www.wangm.com中国PHP开发北京朝阳区http://www.albb.com中国PHP开发';//处理之前echonl2br($string);echo'
';functionsetURL($string){$pattern="/(?:http[s]?|ftp?):\/\/(?:www|mail)\.[^\.\/]*\.(?:com|org|net)/i";preg_match_all($pattern,$string,$arr);foreach($arr[0]as$k=>$v){$replace='
';//处理后echosetURL($string);如果我的博客对你有帮助,喜欢我的博客内容吗?”“点赞”“评论”“收藏”?一键三连!大家的支持是我坚持下去的动力