簡體   English   中英

"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

如何替換包括方括號的內容?

真的<\/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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM