php 正则替换指定内容,只替换一次(方法一)

时间:2023年10月04日

/

来源:网络

/

编辑:佚名

要在 PHP 中使用正则表达式替换指定内容,但只替换一次,可以使用 preg_replace_callback() 函数。该函数接受三个参数:要替换的字符串、替换的字符串、回调函数。回调函数是一个自定义函数,它在正则表达式查找和替换时执行。
以下是一个示例:
$string = "Hello, world! This is a PHP question.";    
$pattern = "|"; // 用 | 分隔的字符串    
$replacement = "!";    
$result = preg_replace_callback($pattern, function($match) {    
    if ($match[0] == "Hello") {    
        return "Hello!";    
    } else if ($match[0] == "world") {    
        return "World!";    
    } else if ($match[0] == "This") {    
        return "This!";    
    } else {    
        return $match[0];    
    }    
}, $string);    
echo $result; // 输出 "Hello! World! This!"
在这个示例中,我们使用 $pattern 参数来查找 “Hello”、 “world” 和 “This” 字符串,并将它们替换为相应的惊叹号。如果我们只想替换 “Hello” 和 “world” 之间的内容,可以使用类似于下面的代码:
$string = "Hello, world! This is a PHP question.";    
$pattern = "(Hello|world)!";    
$replacement = "$1!";    
$result = preg_replace($pattern, $replacement, $string);    
echo $result; // 输出 "Hello! World! This!"
在这个示例中,我们使用 $pattern 参数来查找 “Hello” 或 “world” 字符串,并将它们替换为相应的惊叹号。由于我们只想替换 “Hello” 和 “world” 之间的内容,我们在正则表达式中使用了 (Hello|world) 来匹配这两个字符串。在回调函数中,我们使用 $match[0] 来获取匹配的字符串,并将它们替换为相应的惊叹号。
猜你需要

豫ICP备2021026617号-1  豫公网安备:41172602000185   Copyright © 2021-2028 www.78moban.com/ All Rights Reserved

本站作品均来自互联网,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如有侵犯您的版权,请联系 1565229909#qq.com(把#改成@),我们将立即处理。