PHP preg_replace()函数

PHP preg_replace()函数

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

此函数在 pattern 参数中搜索一定的 subject ,并将其替换为 replacement

语法

preg_replace (mixed pattern, mixedreplacement, mixed subject, intlimit, int $count)

参数

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

pattern

这个参数可以是一个字符串或者一个字符串数组。它保存要在subject参数中搜索的模式。

replacement

这是一个字符串或者一个字符串数组参数。它用于替换在subject参数中匹配的模式。这是一个 必需的 参数。

  • 如果replacement参数是一个字符串,并且pattern参数是一个数组,则所有的模式都将用该字符串来替换。
  • 如果replacement和pattern参数都是数组,每个模式都将被替换为替换对应项。
  • 如果替换数组中的元素比模式数组少,任何多余的模式都将被替换为空字符串。

subject

subject参数也可以是一个字符串或者一个字符串数组来搜索和替换。

如果subject是一个数组,则搜索和替换将在subject的每个条目上执行,并且返回的值也将是一个数组。

limit

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

count

它是一个 可选的 参数。如果传递了这个参数,这个变量将包含替换的次数。该参数在 PHP 5.1.0 中添加。

返回类型

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

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

示例

简单替换

$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);
    echostr;
?>

输出:

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 stringreplacements = array();
    replacements[2] = 'fox';replacements[1] = 'brown';
    replacements[0] = 'quick';

    //apply preg_replace functionnewstr = 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 stringreplacements = 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 functionnewstr = 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.

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程