3
如何在以下語句中替換部分中的$?正則表達式轉義問題
$tmp_code = preg_replace('/(<\?=\$([a-zA-Z0-9\_]+)\?>)/me','"{$$2}"',$tmp_code);
被替換的文本應該像{$ test}但是我不知道如何轉義第一個$。我試過\ $,但沒有做任何事情。
如何在以下語句中替換部分中的$?正則表達式轉義問題
$tmp_code = preg_replace('/(<\?=\$([a-zA-Z0-9\_]+)\?>)/me','"{$$2}"',$tmp_code);
被替換的文本應該像{$ test}但是我不知道如何轉義第一個$。我試過\ $,但沒有做任何事情。
通常,您應該比/e
表達式修飾符更喜歡preg_replace_callback
。但取決於你想要做什麼,有多種解決方法。
可以分割字符串表達式:
'"{"."$"."$2"."}"', $tmp
或者使用替代佔位符語法和逃避{$
所以它不會解釋爲變量變量雙引號內:
'"{\\\$\2}"'
(不,我不知道,只是在附近搗亂。)
選項#1工作得很好,非常感謝! – Joe 2011-06-15 13:38:11
http://www.google.co.uk/search?q=preg_replace+escape+dollar? – 2011-06-15 13:25:57
'$ tmp_code'在該行之前包含什麼? – ssapkota 2011-06-15 13:38:22