PHP 正则表达式替换括号和括号之间的文本

wir*_*ark 3 php regex replace preg-replace

我有以下字符串:

Welcome [firstname] [lastname]
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用,preg_replace()以便将 [firstname] 替换为Marcello并将 [lastname] 替换为Silvestri

我只能找到获取括号内文本的方法,但我想自己替换括号。

$string = "Welcome [firstname] [lastname]";

$patterns = array();
$patterns[0] = '\[firstname\]';
$patterns[1] = '\[lastname\]';

$replacements = array();
$replacements[0] = 'Marcello';
$replacements[1] = 'Silvestri';

echo preg_replace($patterns, $array, $string]);
Run Code Online (Sandbox Code Playgroud)

我还尝试\[(.*?)\]尝试替换所有内容,而不管方括号内容如何,​​但我得到了类似的东西[Marcello],而我只想要Marcello.

如何替换包含方括号的内容?

Ale*_*rei 5

真的不需要正则表达式,所以这是一个简单的str_replace例子。

$string = "Welcome [firstname] [lastname]";

$find = [
    '[firstname]','[lastname]'
];
$replace = [
    'Marcellus','Wallace'
];

$modified = str_replace($find,$replace,$string);

print $modified;
Run Code Online (Sandbox Code Playgroud)

会输出

Welcome Marcellus Wallace
Run Code Online (Sandbox Code Playgroud)