[英]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
。
如何替換包括方括號的內容?
你真的<\/strong>不需要正則表達式,所以這里有一個簡單的
str_replace<\/code>示例。
$string = "Welcome [firstname] [lastname]";
$find = [
'[firstname]','[lastname]'
];
$replace = [
'Marcellus','Wallace'
];
$modified = str_replace($find,$replace,$string);
print $modified;
下面是你的模式。 使用@解決您的問題。 並在此處<\/a>的沙箱中檢查
$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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.