Linux | c&cpp | Email | github | QQ群:425043908 关注本站

itarticle.cc

您现在的位置是:网站首页 -> 网页相关 文章内容

PHP 正则表达式替换 preg_replace 函数-itarticl.cc-IT技术类文章记录&分享

发布时间: 8年前网页相关 124人已围观返回

正则替换

preg_replace() 函数用于正则表达式的搜索和替换。

语法:

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

参数说明:

参数 说明

pattern 正则表达式

replacement 替换的内容

subject 需要匹配替换的对象

limit 可选,指定替换的个数,如果省略 limit 或者其值为 -1,则所有的匹配项都会被替换

补充说明

replacement 可以包含 \\n 形式或 $n 形式的逆向引用,首选使用后者。每个此种引用将被替换为与第 n 个被捕获的括号内的子模式所匹配的文本。n 可以从 0 到 99,其中 \\0 或 $0 指的是被整个模式所匹配的文本。对左圆括号从左到右计数(从 1 开始)以取得子模式的数目。

对替换模式在一个逆向引用后面紧接着一个数字时(如 \\11),不能使用 \\ 符号来表示逆向引用。因为这样将会使 preg_replace() 搞不清楚是想要一个 \\1 的逆向引用后面跟着一个数字 1 还是一个 \\11 的逆向引用。解决方法是使用 \${1}1。这会形成一个隔离的 $1 逆向引用,而使另一个 1 只是单纯的文字。

上述参数除 limit 外都可以是一个数组。如果 pattern 和 replacement 都是数组,将以其键名在数组中出现的顺序来进行处理,这不一定和索引的数字顺序相同。如果使用索引来标识哪个 pattern 将被哪个 replacement 来替换,应该在调用 preg_replace() 之前用 ksort() 函数对数组进行排序。

例子 1 :

<?php

$str = "The quick brown fox jumped over the lazy dog.";

$str = preg_replace('/\s/','-',$str);

echo $str;

?>

输出结果为:

The-quick-brown-fox-jumped-over-the-lazy-dog.

例子 2 ,使用数组:

<?php

$str = "The quick brown fox jumped over the lazy dog.";

$patterns[0] = "/quick/";

$patterns[1] = "/brown/";

$patterns[2] = "/fox/";

$replacements[2] = "bear";

$replacements[1] = "black";

$replacements[0] = "slow";

print preg_replace($patterns, $replacements, $str);

/*输出:

The bear black slow jumped over the lazy dog.

*/

ksort($replacements);

print preg_replace($patterns, $replacements, $str);

/*输出:

The slow black bear jumped over the lazy dog.

*/

?>

例子 3 ,使用逆向引用:

<?php

$str = '<a href="http://www.5idev.com/">5idev</a>其他字符<a href="http://www.sohu.com/">sohu</a>';

$pattern = "/<a\s([\s\S]*?)>([\s\S]*?)<\/a>/i";

print preg_replace($pattern, '\\2', $str);

?>

输出结果为:

5idev其他字符sohu


这里的正则表达式: [\s\S]*? 问号的意思是非贪婪匹配的意思

该例子演示了将文本中所有的 <a></a> 标签去掉。

发布时间: 8年前网页相关124人已围观返回回到顶端

很赞哦! (1)

上一篇:正则表达式相关

下一篇:返回列表

文章评论

  • 请先说点什么
    热门评论
    123人参与,0条评论

站点信息

  • 建站时间:2016-04-01
  • 文章统计:728条
  • 文章评论:82条
  • QQ群二维码:扫描二维码,互相交流