我正在研究一個「簡碼」功能來替換保存在數據庫中的文本中的內容。PHP正則表達式替換括號內的內容
我試圖找到所有出現在雙括號內的任何東西{{ }}
,看看是否存在替換,如果有,替換它。我對正則表達式不好,我不知道這是否是這樣做的最有效的方法:
$string = "This is a {{test}} to see if it {{works}}";
$regex = ""; // Unfortunately, I'm clueless when it comes to regex
preg_match_all($regex, $string, $matches);
$replacements = array(
'test' => 'sample',
'works' => 'exists'
);
foreach ($matches as $match) {
if (array_key_exists($match, $replacements)) {
$string = str_replace($match, $replacements[$match], $string);
}
}
return $string;
在這個例子中,我想回:
This is a sample to see if it exists
我如果「簡碼」不存在,只需簡單地將其保留在內容中即可。
您可以測試你的表情[這裏](https://regex101.com/)。但是,如果你的替換和示例中的一樣簡單,那麼使用'str_replace()'(只需連接大括號到針)。否則,在這種情況下,我會使用'preg_replace_callback()'。 – shudder
這是正則表達式''/\{\{(.*?)\}\}/' – Robert
@JROB如果這是爲了處理短代碼的目的,你可以使用我的Shortcode庫:https://github.com/thunderer/使用默認處理程序和自定義語法對象進行簡碼,該對象將根據所需數組檢測並替換所有內容。 –