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] 来获取匹配的字符串,并将它们替换为相应的惊叹号。
以下是一个示例:
$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] 来获取匹配的字符串,并将它们替换为相应的惊叹号。
新闻资讯 更多
- 【建站知识】查询nginx日志状态码大于400的请求并打印整行04-03
- 【建站知识】Python中的logger和handler到底是个什么?04-03
- 【建站知识】python3拉勾网爬虫之(您操作太频繁,请稍后访问)04-03
- 【建站知识】xpath 获取meta里的keywords及description的方法04-03
- 【建站知识】python向上取整以50为界04-03
- 【建站知识】scrapy xpath遇见乱码解决04-03
- 【建站知识】scrapy爬取后中文乱码,解决word转为html 时cp1252编码问题04-03
- 【建站知识】scrapy采集—爬取中文乱码,gb2312转为utf-804-03