PHP preg_replace()函数

【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, 表示没有限制。
计数
它是一个可选参数。如果传递了此参数, 则此变量将包含完成的替换次数。此参数在PHP 5.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 = 'CamilaCabelloisaHollywoodsinger.'; $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.

    推荐阅读