1
我有一個字符串,我想用給定的值替換文本[[signature]]
,但由於它是編碼的,文本看起來像%5B%5Bsignature%5D%5D
。正則表達式替換url編碼的字符串
如何使用正則表達式來替換它?這段代碼的工作,但只有當字符串沒有編碼:
$replace = preg_replace('/\[\[signature\]\]/', 'replaced!', $html);
我有一個字符串,我想用給定的值替換文本[[signature]]
,但由於它是編碼的,文本看起來像%5B%5Bsignature%5D%5D
。正則表達式替換url編碼的字符串
如何使用正則表達式來替換它?這段代碼的工作,但只有當字符串沒有編碼:
$replace = preg_replace('/\[\[signature\]\]/', 'replaced!', $html);
你已編碼的字符串,所以只對其進行解碼,然後運行您更換。
$html = urldecode($html);
$replace = preg_replace('/\[\[signature\]\]/', 'replaced!', $html);
你總是可以再次對其進行編碼後,如果您需要:
$html = urlencode($html);
非正則表達式的解決方案
如果您的查找/替換是真的那麼簡單,那麼你不要甚至不需要使用正則表達式。只要做一個標準的字符串替換:
$html = str_replace('[[signature]]', 'replaced!', $html);
爲什麼然後使用正則表達式?使用[''str_replace('%5B%5Bsignature%5D%5D','replacement!',$ html)'](https://ideone.com/Jsb31o) –
使用['urldecode'](http:// php.net/manual/en/function.urldecode.php)方法在使用你的正則表達式之前在Php中可用。 – ThePerplexedOne