PHP preg_replace()函数

PHP preg_replace() 函数 preg_replace()函数是PHP的内置函数。它用于执行正则…

PHP preg_replace() 函数

preg_replace()函数是PHP的内置函数。它用于执行正则表达式搜索和替换。

此函数在主题参数中搜索模式,并将其替换为替换。

句法

preg_replace (mixed $pattern, mixed $replacement, mixed $subject, int $limit, int $count)

参量

此函数接受五个参数,如下所述:

模式

此参数可以是字符串,也可以是包含字符串的数组。它拥有在主题参数中搜索的模式。

替换

它是字符串或带有字符串参数的数组。此参数替换主题参数中匹配的模式。它是必填参数。

  • 如果replace参数是一个字符串 ,而pattern参数是一个数组,则所有模式都将被该字符串替换。
  • 如果replacement和pattern参数均为数组,则每个pattern将由替换副本替换。
  • 如果替换数组包含的元素少于模式数组,则任何多余的模式都将由空字符串替换。

学科

subject参数也可以是字符串或要搜索和替换的字符串数组。

如果主题是数组,则对主题的每个条目执行搜索和替换,并且返回值也将是数组。

限制

限制是一个可选参数,用于指定每个模式的最大可能替换数。限制的默认值为-1,表示没有限制。

计数

它是一个可选参数。如果传递了此参数,则此变量将包含完成的替换次数。此参数在PHP5.1.0中添加。

返回类型

如果subject参数是一个数组,则preg_replace()函数将返回一个数组,否则将返回一个字符串。

  • 替换完成后,将返回修改后的字符串 。
  • 如果找不到任何匹配项,则字符串将保持不变。

例子

简单更换

$res = preg_replace('/abc/', 'efg', $string);#Replace all 'abc' with 'efg'
$res = preg_replace('/abc/i', 'efg', $string);#Replace with case-insensitive matching
$res = preg_replace('/s+/', '', $string);#Strip all whitespace

请参阅详细示例以实际了解preg_replace()函数:

使用反向引用后跟数字文字的示例

<?php
$date = 'May 29, 2020';
$pattern = '/(w+) (d+), (d+)/i';
$replacement = '${1} 5,$3';

//display the result returned by preg_replace
echo preg_replace($pattern, $replacement, $date);
?>

输出:

May 5, 2020 

去除空格的示例

在下面的示例中,preg_replace()从给定的字符串删除所有多余的空格。

<?php
$str = 'Camila    Cabello   is    a   Hollywood    singer.';
$str = preg_replace('/s+/', ' ', $str);
echo $str;
?>

输出:

Camila Cabello is a Hollywood singer. 

使用索引数组的示例

本示例将包含一个用替换数组替换的模式数组。

<?php
//declare a string
$string = 'The slow black bear runs away from the zoo.';
$patterns = array();

//pattern to search in subject string
$patterns[0] = '/slow/';
$patterns[1] = '/black/';
$patterns[2] = '/bear/';

//replacement value to replace with pattern in the given search string
$replacements = array();
$replacements[2] = 'fox';
$replacements[1] = 'brown';
$replacements[0] = 'quick';

//apply preg_replace function
$newstr = preg_replace($patterns, $replacements, $string);
echo "<b>String after replacement:</b> " .$newstr;
?>

输出:

String after replacement: The fox brown quick runs away from the zoo.

在上面的示例中,我们可以看到输出与我们想要的不同。因此,通过在使用preg_replace()之前对模式和替换应用ksort(),我们可以获得想要的结果。

<?php
//declare a string
$string = 'The slow black bear runs away from the zoo.';
$patterns = array();

//pattern to search in subject string
$patterns[0] = '/slow/';
$patterns[1] = '/black/';
$patterns[2] = '/bear/';

//replacement value to replace with pattern in the given search string
$replacements = array();
$replacements[2] = 'fox';
$replacements[1] = 'brown';
$replacements[0] = 'quick';

//sort the values of both pattern and replacement
ksort($patterns);
ksort($replacements);

//apply preg_replace function
$newstr = preg_replace($patterns, $replacements, $string);
echo "<b>String after replacement using ksort:</b> " .$newstr;
?>

输出:

String after replacement using ksort: The quick brown fox runs away from the zoo.

类别:PHP 技巧

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册