本文实例总结了php常用正则函数。分享给大家供大家参考,具体如下:
1. 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.baidu.com/">baidu</a>其他字符<a href="http://www.sohu.com/">sohu</a>';$pattern = "/<a/s([/s/S]*?)>([/s/S]*?)<//a>/i";print preg_replace($pattern, '//2', $str);?>
输出结果为:
baidu其他字符sohu
该例子演示了将文本中所有的 <a></a> 标签去掉。
2. int preg_match(string $pattern, string $subject [,array &$matches [, int $flags=0 [ ,int $offset=0]]])
新闻热点
疑难解答