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
$string
=
'
google 123, 456
'
;
$pattern
=
'
/(\w+) (\d+), (\d+)/i
'
;
$replacement
=
'
voidme ${2},$3
'
;
echo
preg_replace
(
$pattern
,
$replacement
,
$string
)
;
执行结果如下所示:
voidme 123,456
删除空格字符
$str
=
'
runo o b
'
;
$str
=
preg_replace
(
'
/\s+/
'
,
'
'
,
$str
)
;
//
将会改变为'voidme'
echo
$str
;
执行结果如下所示:
voidme
使用基于数组索引的搜索替换
$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
$count
=
0
;
echo
preg_replace
(
array
(
'
/\d/
'
,
'
/\s/
'
)
,
'
*
'
,
'
xp 4 to
'
, -
1
,
$count
)
;
echo
$count
;
//
3
执行结果如下所示:
xp***to 3