php preg_replace替换实例讲解

2015-01-24信息快讯网

php preg_replace()替换实例讲解,php preg_replace()是执行一个正则表达式的搜索和替换的用函数.

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

是执行一个正则表达式的搜索和替换的用函数,平时我们用它时多是一次替换结束,今天又看php手册发现了一个较为难理解(自认为)的例子分享给大家。
<?php
 $subject = array('1', 'a', '2', 'b', '3', 'A', 'B', '4');
 $pattern = array('/\d/', '/[a-z]/', '/[1a]/');
 $replace = array('A:$0', 'B:$0', 'C:$0');

 echo "preg_replace returns\n<pre/>";
 print_r(preg_replace($pattern, $replace, $subject));
 ?>
 

结果如下:

php preg_replace替换实例讲解_信息快讯网
咋一看,我就看晕了
一般 若匹配模式和替换内容这两项都是数组的话它们应该相对应,如果replacement中的元素比pattern中的少, 多出来的pattern使用空字符串进行替换.
$pattern就像个扫描器,扫到匹配的就用于之对应的$replace替换
对于上例替换过程如下:
/\d/扫描$subject里的1,匹配了,匹配内容为$0(也就是1)就把1替换为A:1
然后用/[a-z]/扫描A:1不匹配,就不替换,继续用[1a]扫描A:1,匹配内容为1(也就是$0),就把A:1中1换为C:1
第一项最终被替换为A:C:1
简化过程:

1->A:1->A:C:1
a->B:a->B:C:a
2->A:2
b->B:b
A(没有符合匹配的就不替换了)
B(同上)
4->A:4
总结一点,拿$pattern里的每一个模式依次去匹配$subject里的每一个元素,匹配到了就用与$pattern对应的那个$replace对换,如上例,可能不止一次替换

Codeigniter中禁止A Database Error Occurred错误提示的方法
php中替换字符串中的空格为逗号','的方法
使用php批量删除数据库下所有前缀为prefix_的表
php 批量添加多行文本框textarea一行一个
php_screw安装使用教程(另一个PHP代码加密实现)
PHP的foreach中使用引用时需要注意的一个问题和解决方法
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
PHP的preg_match匹配字符串长度问题解决方法
用PHP和Shell写Hadoop的MapReduce程序
php中sprintf与printf函数用法区别解析
php的sprintf函数的用法 控制浮点数格式
PHP中替换键名的简易方法示例详解
php 批量替换html标签的实例代码
PHP利用str_replace防注入的方法
6种php上传图片重命名的方法实例
php define的第二个参数使用方法
在PHP上显示JFreechart画的统计图方法
PHP查询网站的PR值
FireFox浏览器使用Javascript上传大文件
PHP中include与require使用方法区别详解
php 批量替换程序的具体实现代码
php mysql_real_escape_string函数用法与实例教程
php stream_get_meta_data返回值
PHP函数preg_match_all正则表达式的基本使用详细解析
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
php采集文章中的图片获取替换到本地(实现代码)
浅析php面向对象public private protected 访问修饰符
php小经验:解析preg_match与preg_match_all 函数
解析PHP正则提取或替换img标记属性
比较strtr, str_replace和preg_replace三个函数的效率
解析php中eclipse 用空格替换 tab键
慎用preg_replace危险的/e修饰符(一句话后门常用)
©2014-2024 dbsqp.com