php preg_replace替换实例讲解

 更新时间:2013年11月04日 14:52:35   作者:  
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));
 ?>
 

结果如下:


咋一看,我就看晕了
一般 若匹配模式和替换内容这两项都是数组的话它们应该相对应,如果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经典实用正则表达式小结

    PHP经典实用正则表达式小结

    这篇文章主要介绍了PHP经典实用正则表达式,结合具体实例总结分析了php基于正则实现验证、查找、匹配等相关操作技巧,需要的朋友可以参考下
    2017-05-05
  • PHP中类型转换 ,常量,系统常量,魔术常量的详解

    PHP中类型转换 ,常量,系统常量,魔术常量的详解

    这篇文章主要介绍了PHP中类型转换 ,常量,系统常量,魔术常量的详解的相关资料,希望通过本文能帮助到大家,让大家掌握这部分内容,需要的朋友可以参考下
    2017-10-10
  • php操作redis的常见用法详解

    php操作redis的常见用法详解

    这篇文章主要为大家详细介绍了php操作redis的常见用法的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • PHP中字符安全过滤函数使用小结

    PHP中字符安全过滤函数使用小结

    这篇文章主要简单介绍了PHP中字符安全过滤函数,对于防止sql注入攻击XSS攻击能非常有用,这里推荐给大家。
    2015-02-02
  • 基于empty函数的判断详解

    基于empty函数的判断详解

    本篇文章是对empty函数的判断进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP中的数组处理函数实例总结

    PHP中的数组处理函数实例总结

    这篇文章主要介绍了PHP中的数组处理函数,结合实例形式总结分析了常见的PHP数组处理函数功能,定义及使用技巧,代码备有详尽的注释便于理解,需要的朋友可以参考下
    2016-01-01
  • php模拟js函数unescape的函数代码

    php模拟js函数unescape的函数代码

    php模拟js函数unescape的函数代码,需要的朋友可以参考下
    2012-10-10
  • php轻松实现中英文混排字符串截取

    php轻松实现中英文混排字符串截取

    提到中英文混排计数、截取,大家首先想到的是自己写个截取函数,这在之前的文章中我也提到过,今天我给大家分享的是php的mb扩展,教你如何使用原生态的php函数轻松处理字符串。
    2014-05-05
  • mysqli扩展无法在PHP7下升级问题的解决

    mysqli扩展无法在PHP7下升级问题的解决

    这篇文章主要给大家介绍了关于mysqli扩展无法在PHP7下升级问题的解决方法,文中通过示例代码介绍的非常详细,对大家学习或者使用PHP7具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • 让的PHP代码飞起来的40条小技巧(提升php效率)

    让的PHP代码飞起来的40条小技巧(提升php效率)

    这是在网上看到的一篇帖子,讲的自己感觉比较实用,很注重细节【呵呵,当然是指对像我一样的业余PHPer而言了】,又担心以后找不到原帖子,所以就转了过来。
    2010-04-04

最新评论