PHP 正则表达式替换括号和括号之间的文本
PHP Regex replace text between brackets AND brackets
我有以下字符串:
Welcome [firstname] [lastname]
我正在尝试使用 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]);
我也尝试用 \[(.*?)\]
尝试替换所有内容,而不考虑方括号内容,但我得到类似 [Marcello]
的内容,而我只想要 Marcello
.
如何替换包括方括号在内的内容?
你真的不需要正则表达式,所以这里有一个简单的str_replace
例子。
$string = "Welcome [firstname] [lastname]";
$find = [
'[firstname]','[lastname]'
];
$replace = [
'Marcellus','Wallace'
];
$modified = str_replace($find,$replace,$string);
print $modified;
会输出
Welcome Marcellus Wallace
下面是你的图案。使用@解决你的问题。并在沙盒中检查它 here
$string = "Welcome [firstname] [lastname]";
$patterns = array();
$patterns[0] = '@\[firstname\]@';//this is what you need
$patterns[1] = '@\[lastname\]@';
$replacements = array();
$replacements[0] = 'Marcello';
$replacements[1] = 'Silvestri';
echo preg_replace($patterns, $replacements, $string);
您可以使用 str_replace() 实现此目的。做了个小测试,可以看到下面的代码:
$string = "Welcome [firstname] [lastname]";
$patterns = array("Marcello", "Silvestri");
$replace = array("[firstname]", "[lastname]");
$result = str_replace($replace, $patterns , $string);
echo $result;
另见 PHP str_replace()
我有以下字符串:
Welcome [firstname] [lastname]
我正在尝试使用 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]);
我也尝试用 \[(.*?)\]
尝试替换所有内容,而不考虑方括号内容,但我得到类似 [Marcello]
的内容,而我只想要 Marcello
.
如何替换包括方括号在内的内容?
你真的不需要正则表达式,所以这里有一个简单的str_replace
例子。
$string = "Welcome [firstname] [lastname]";
$find = [
'[firstname]','[lastname]'
];
$replace = [
'Marcellus','Wallace'
];
$modified = str_replace($find,$replace,$string);
print $modified;
会输出
Welcome Marcellus Wallace
下面是你的图案。使用@解决你的问题。并在沙盒中检查它 here
$string = "Welcome [firstname] [lastname]";
$patterns = array();
$patterns[0] = '@\[firstname\]@';//this is what you need
$patterns[1] = '@\[lastname\]@';
$replacements = array();
$replacements[0] = 'Marcello';
$replacements[1] = 'Silvestri';
echo preg_replace($patterns, $replacements, $string);
您可以使用 str_replace() 实现此目的。做了个小测试,可以看到下面的代码:
$string = "Welcome [firstname] [lastname]";
$patterns = array("Marcello", "Silvestri");
$replace = array("[firstname]", "[lastname]");
$result = str_replace($replace, $patterns , $string);
echo $result;
另见 PHP str_replace()