找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 86|回复: 0
打印 上一主题 下一主题

php preg_replace替换实例讲解

[复制链接]

2617

主题

2617

帖子

7789

积分

论坛元老

Rank: 8Rank: 8

积分
7789
跳转到指定楼层
楼主
发表于 2018-2-14 08:11:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            [U]复制代码[/U] 代码如下:
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
是执行一个正则表达式的搜索和替换的用函数,平时我们用它时多是一次替换结束,今天又看php手册发现了一个较为难理解(自认为)的例子分享给大家。
[U]复制代码[/U] 代码如下:
";
print_r(preg_replace($pattern, $replace, $subject));
?>

结果如下:

咋一看,我就看晕了
一般 若匹配模式和替换内容这两项都是数组的话它们应该相对应,如果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对换,如上例,可能不止一次替换
            
            
您可能感兴趣的文章:
  • php正则之函数 preg_replace()参数说明
  • c#中的实现php中的preg_replace
  • PHP html标签正则替换并可自定义正则规则
  • PHP 字符串正则替换函数preg_replace使用说明
  • PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
  • php中使用preg_replace函数匹配图片并加上链接的方法
  • PHP preg_replace() 正则替换所有符合条件的字符串
  • PHP正则替换函数preg_replace和preg_replace_callback使用总结
  • php中正则替换函数ereg_replace用法实例
  • php正则替换变量指定字符的方法
  • PHP5.2下preg_replace函数的问题
  • php中preg_replace_callback函数简单用法示例
  • php中preg_replace正则替换用法分析【一次替换多个值】
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端