首页 > 编程笔记 > PHP笔记 阅读:4

PHP preg_replace()函数的用法(附带实例)

preg_replace() 函数用于替换字符串,该函数执行正则表达式的搜索和替换,语法格式如下:
(mixed preg_replace(mixed pattern,mixed replacement,mixed subject[,int limit])
其中,replacement 可以包含形如“\\n”或“$n”的逆向引用,优先使用后者,$n 的取值为 1~99。

逆向引用是通过“\”转义的数字,该数字指出当前表达式应该在此匹配它已经查找到的序列。此时,逆向引用的数字 n 指定在当前正则表达式中,从左往右、第 n 个“()”内的子模式应当替换它在字符串中所匹配的文本。替换模式在一个逆向引用后紧接着一个数字时,最好不要使用“\\n”来表示逆向引用。

例如,preg_replace() 函数无法区分“\\11”是“\\1”的逆向引用后面紧跟着一个数字 1,还是表示“\\n”的逆向引用。解决方法是使用“\${1}1”,因为这会形成一个隔离的“$1”逆向引用,而另一个“1”只是单纯的字符。

【实例】替换字符串。
<?php
header("content-type:text/html;charset=utf-8");
$str="<h1>爱我中国!</h1>";
$str1="(h1) 爱我中国!(/h1)";
echo $str;
echo $str1;
echo "</br>";
echo preg_replace('/<(.*?)>/',"($1)",$str);
?>
运行结果如下图所示:


图 1 替换字符串

preg_replace() 函数也可以将查找到的字符串替换为指定字符串,语法格式如下:
string preg_replace(string $pattern,string $replacement,string $string)
其中,参数 $replacement 表示替换字符串时使用的字符,其功能是使用字符串 $replacement 替换字符串 $string 中与 $pattern 匹配的部分,并返回替换后的字符串。如果没有可供替换的匹配项则返回原字符串。

【实例 2】将字符串替换为超链接。
<?php
$stra="hello world";
echo preg_replace("/[lro]/","y",$stra)."<br>"; //使用y替换l、r、o
$resrc='<a href="world.php">hello</a>';
echo preg_replace("/hello/",$resrc,$stra); //使用一个超链接替换hello字符
?>
运行结果如下图所示:


图 2 将字符串替换为超链接

相关文章