查看: 693|回复: 0

PHP preg_replace() 函数

[复制链接]

748

主题

39

回帖

3907

积分

管理员

总舵主

积分
3907
QQ
发表于 2024-5-25 17:44:11 | 显示全部楼层 |阅读模式
preg_replace 函数执行一个正则表达式的搜索和替换。
  1. mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
复制代码
搜索 subject 中匹配 pattern 的部分, 以 replacement 进行替换。
参数说明:
  • $pattern: 要搜索的模式,可以是字符串或一个字符串数组。
  • $replacement: 用于替换的字符串或字符串数组。
  • $subject: 要搜索替换的目标字符串或字符串数组。
  • $limit: 可选,对于每个模式用于每个 subject 字符串的最大可替换次数。 默认是-1(无限制)。
  • $count: 可选,为替换执行的次数。

返回值
如果 subject 是一个数组, preg_replace() 返回一个数组, 其他情况下返回一个字符串。
如果匹配被查找到,替换后的 subject 被返回,其他情况下 返回没有改变的 subject。如果发生错误,返回 NULL。
实例:
将google替换为51digit
  1. <?php
  2. $string = 'google 123, 456';
  3. $pattern = '/(\w+) (\d+), (\d+)/i';
  4. $replacement = '51digit ${2},$3';
  5. echo preg_replace($pattern, $replacement, $string);
  6. ?>
复制代码
执行结果如下所示:
  1. 51digit 123,456
复制代码
删除空格字符:
  1. <?php
  2. $str = 'runo o   b';
  3. $str = preg_replace('/\s+/', '', $str);
  4. // 将会改变为'runoob'
  5. echo $str;
  6. ?>
复制代码
执行结果如下所示:
  1. runoob
复制代码
使用基于数组索引的搜索替换:
  1. <?php
  2. $string = 'The quick brown fox jumped over the lazy dog.';
  3. $patterns = array();
  4. $patterns[0] = '/quick/';
  5. $patterns[1] = '/brown/';
  6. $patterns[2] = '/fox/';
  7. $replacements = array();
  8. $replacements[2] = 'bear';
  9. $replacements[1] = 'black';
  10. $replacements[0] = 'slow';
  11. echo preg_replace($patterns, $replacements, $string);
  12. ?>
复制代码
执行结果如下所示:
  1. The bear black slow jumped over the lazy dog.
复制代码
使用参数count
  1. <?php
  2. $count = 0;

  3. echo preg_replace(array('/\d/', '/\s/'), '*', 'xp 4 to', -1 , $count);
  4. echo $count; //3
  5. ?>
复制代码
执行结果如下所示:
  1. xp***to
  2. 3
复制代码


道不同,不相为谋!理想要有,万一实现了呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:2513533699@qq.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|鲁ICP备19000917号|鲁公网安备37078302000320号

在本版发帖
关注公众号
QQ客服返回顶部