php - PHP - 替换字符串之间的所有内容,包括内容
问题描述
我想遍历一个看起来像这样的字符串。
Booo ahh [Hello] and what is [Baby] at your [Mouse]
我的目标是将 every 替换[@@@]
为另一个字符串,这不是静态的,但可以处理括号之间的内容。
应该是这样的
function replace_string($text) {
...
//Maybe some kind of loop for all brackets
{
$content = ... //For example Hello, Baby, Mouse => @@@
$replacement = "I'm a " . $content . "!";
...
}
return $replacedString;
}
我不认为它可以像我的“建议”那样起作用,但我希望我能展示我想做的事情并且有人可以帮助我。
解决方案
据我了解,您希望最后有这个字符串:
Booo ahh [I'm a Hello!] 你的 [I'm a Mouse!] 是什么 [I'm a Baby!]
所以你可以使用 preg_replace 函数:http://php.net/manual/en/function.preg-replace.php
您的代码将如下所示:
function replace_string($text)
{
return preg_replace('/\[([^\]]+)\]+/', "[I'm a $1!]", $string);
}
所以
<?php
$string = 'Booo ahh [Hello] and what is [Baby] at your [Mouse]';
echo replace_string($string);
// will display
// Booo ahh [I'm a Hello!] and what is [I'm a Baby!] at your [I'm a Mouse!]
不确定是否要保留括号,如果不想,并且想要
Booo ahh 我是你好!什么是我是婴儿!在你的我是一只老鼠!
只需使用:
preg_replace('/\[([^\]]+)\]+/', "I'm a $1!", $string);
您可以在此处查看正则表达式:https ://regex101.com/r/8hJQr0/1
推荐阅读
- android - 如何从 recycleview 裁剪图像并使用新裁剪的图像更新 recycleview?
- node.js - Dialogflow - Google Assistant:显示带有图标+文字的建议
- php - 缓存单选按钮jquery
- android - 如何解决 fopen64、freopen64、tmpfile64 未声明错误?
- php - 使用学说将浏览量保存在数据库中的最快方法
- azure - 访问麦克风读数以进行粗略的分贝测量
- python - OpenCV-ArUco中tvecs rvecs的基本理解
- css - 标题上的任意高度 + 容器上的其余高度
- c# - C#实体框架查询存储过程报错“不支持文化”
- r - R:重复计算具有不同参数的字符串中的单词的函数