php正则表达式函数
preg_replace()
preg_replace( mixed $pattern, mixed $replacement, mixed $subject[, int $limit = -1[, int &$count]] ) : mixed
// — 执行一个正则表达式 进行搜索和替换
搜索subject
中匹配pattern
的部分,以replacement
进行替换
如果subject
是一个数组, preg_replace()
返回一个数组,其他情况下返回一个字符串。
如果匹配被查找到,替换后的subject被返回,其他情况下返回没有改变的 subject。如果发生错误,返回 NULL 。
- 要搜索的模式。可以是一个字符串或字符串数组。
- 用于替换的字符串或字符串数组。
- 要进行搜索和替换的字符串或字符串数组。
- 每个模式在每个
subject
上进行替换的最大次数。默认是 -1(无限)。 - 如果指定,将会被填充为完成的替换次数。
传递三个参数
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
// April1,2003
使用数组
$string = 'The quick brown fox jumps over the lazy dog.';
$patterns = [
'/quick/'
,'/brown/'
,'/fox/'
];
$replacements = [
'bear'
,'black'
,'slow'
];
echo preg_replace($patterns, $replacements, $string);
// The bear black slow jumps over the lazy dog.
使用limit
参数
$pattern = ['/\d/', '/\s/'];
$repalcements = '*';
$subject = 'xp 4 to';
$count = 0;
echo preg_replace($pattern, $repalcements, $subject, -1 , $count);
// xp***to
echo $count;
// 3 代表替换了3次
使用$limit
参数
$pattern = ['/\d/', '/\s/'];
$repalcements = '*';
$subject = 'xp 4 to';
$limit = 1;
$count = 0;
echo preg_replace($pattern, $repalcements, $subject, $limit, $count);
// xp***to
echo $count;
// 2 代表替换了2次