Heim > php教程 > php手册 > PHP中的正则表达式函数preg

PHP中的正则表达式函数preg

WBOY
Freigeben: 2016-06-06 19:53:46
Original
1499 Leute haben es durchsucht

preg_match(); //用于正则表达式的匹配,且只匹配一次 preg_match_all();//用于正则表达式的匹配,会对所有符合规则的都进行匹配 preg_replace(); //正则表达式替换函数 preg_splite(); //正则分割函数 preg_match ( mode, string subject , arraymatches )

preg_match();     //用于正则表达式的匹配,且只匹配一次

preg_match_all();//用于正则表达式的匹配,会对所有符合规则的都进行匹配

preg_replace();   //正则表达式替换函数

preg_splite();     //正则分割函数


preg_match ( mode, string subject , arraymatches )

其中mode是正则规则,string subject是要匹配的字符串,arraymatches是匹配的结果数组

例子:

<?php $mode='/[89]/';//匹配8或者9
$str="djfkdsjk10903990sjdfdk";
preg_match($mode,$str,$arr);
print_r($arr);
?>
Nach dem Login kopieren

输出:
Array ( [0] => 9 ) 
Nach dem Login kopieren

preg_match_all ( mode, string subject , arraymatches )

该函数和preg_match_all()函数的功能类似,不过该函数会匹配所有符合要求的内容,并将之存放到字符串中。


例子:

<?php $mode='/[89]/';//匹配8或者9
$str="dj33f44k88dsjk10903990sjdfdk";
preg_match_all($mode,$str,$arr);
print_r($arr);
?>
Nach dem Login kopieren

输出:

Array ( [0] => Array ( [0] => 8 [1] => 8 [2] => 9 [3] => 9 [4] => 9 ) ) 
Nach dem Login kopieren

preg_replace ( mixed pattern, mixed replacement,mixed subject [, int limit] )

通过正则表达式来替换相关内容,类似之前学过的str_replace字符串替换,但功能要强于它。


特点:1、替换内容可以是一个正则也可以是数组正则

          2、替换内容可以通过修正符e来解决替换执行内容

用途:替换一些比较复杂的内容上,也可以用于内容的转换上

例子1——数组正则:

<?php $mode=array('/{title}/','/{author}/','/{url}/');
$re=array("code cloud","qianshou","http://codecloud.duapp.com/");
$str="标题:{title}<br>作者:{author}<br>地址:{url}";
echo "<hr>";
if($tag=preg_replace($mode,$re,$str)){
 echo $tag;
}else{
 echo "替换不成功!";
}
?>
Nach dem Login kopieren


输出:

标题:code cloud
作者:qianshou
地址:http://codecloud.duapp.com/
Nach dem Login kopieren

例子2——ubb代码的替换:
<?php $str="欢迎来到我的博客:[url]http://blog.csdn.net/qsyzb[/url]";
$re=preg_replace('/\[url\](.*)\[\/url\]/',"<a href=\"\\1\" target=\"new\">\\1",$str);
echo "<hr>".$re."<hr>";
?>
Nach dem Login kopieren

输出:
<hr>欢迎来到我的博客:<a href="http://blog.csdn.net/qsyzb" target="new">http://blog.csdn.net/qsyzb</a><hr>
Nach dem Login kopieren

preg_split ( string pattern, string subject [, intlimit [, int flags]] )

通过正则表达式来切割相关内容,类似之前学过的explode切割函数,但explode只能按照一种方式切割有局限性。

例子:

<?php $mode='/[,.#]/';
$str='one,two.three#four';
if($tag=preg_split($mode,$str)){
 print_r($tag);
}else{
 echo "替换不成功!";
}
?>
Nach dem Login kopieren

输出:
Array
(
    [0] => one
    [1] => two
    [2] => three
    [3] => four
)
Nach dem Login kopieren


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage