摘要:资源收录正则函数注不同于字符串函数,为主动传值,指示替换次数汇集全网优质网址及资源的中文上网导航。要注意替换顺序,如果先将网址替换为标签,再去除所有标签,会将链接也去除其他正则函数带回调函数汇集全网优质网址导航。
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等借用正则中子模式的内容,如下: