PHP preg_replace() 函数

PHP 正则表达式(PCRE)PHP 正则表达式(PCRE)

preg_replace 函数执行一个正则表达式的搜索和替换。

语法

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 替换为 voidme
<?php $string = ' google 123, 456 ' ; $pattern = ' /(\w+) (\d+), (\d+)/i ' ; $replacement = ' voidme ${2},$3 ' ; echo preg_replace ( $pattern , $replacement , $string ) ; ?>

执行结果如下所示:

voidme 123,456

删除空格字符
<?php $str = ' runo o b ' ; $str = preg_replace ( ' /\s+/ ' , ' ' , $str ) ; // 将会改变为'voidme' echo $str ; ?>

执行结果如下所示:

voidme

使用基于数组索引的搜索替换
<?php $string = ' The quick brown fox jumped over the lazy dog. ' ; $patterns = array ( ) ; $patterns [ 0 ] = ' /quick/ ' ; $patterns [ 1 ] = ' /brown/ ' ; $patterns [ 2 ] = ' /fox/ ' ; $replacements = array ( ) ; $replacements [ 2 ] = ' bear ' ; $replacements [ 1 ] = ' black ' ; $replacements [ 0 ] = ' slow ' ; echo preg_replace ( $patterns , $replacements , $string ) ; ?>

执行结果如下所示:

The bear black slow jumped over the lazy dog.

使用参数 count
<?php $count = 0 ; echo preg_replace ( array ( ' /\d/ ' , ' /\s/ ' ) , ' * ' , ' xp 4 to ' , - 1 , $count ) ; echo $count ; // 3 ?>

执行结果如下所示:

xp***to
3

PHP 正则表达式(PCRE)PHP 正则表达式(PCRE)