2010-11-16 24 views
0

當然,對於preg_replace,我顯然做了一些完全錯誤的事情。Preg_replace問題,一定是微不足道的

說我有一個文本字符串,

「沉默是金,直到你是一個沉默。」我想用「沉默」取代「沉默」,但不能取代沉默中的沉默。

這裏是到位的代碼,我有:

$q = "Silence is golden until you are the one silenced."; 
$card = "Silence"; 
$pattern = '/\b'.$card.'\b/i'; 
$q = preg_replace($pattern,'<strong>'.$card.'</strong>',$q); 

這是失敗和設定$ Q = 「」

我在做什麼錯?

+0

我猜,沒有加倍\,假設\意味着PHP字符串中的轉義字符。嘗試\\ b – 2010-11-16 15:48:19

+1

似乎工作正常..http://www.ideone.com/on1aC – codaddict 2010-11-16 15:48:56

+0

您的代碼在PHP 5.2.10-2ubuntu6.5上正常工作。 – 2010-11-16 15:52:25

回答

1

問題已解決。在實際的代碼中,我正在將一組項目迭代到preg_replace,並且只是應用preg_replace,而沒有使用preg_match進行第一次測試。

+1

您可以使用替換''$ 0''而'$ 0'是反向引用整個正則表達式模式的匹配字符串。 – Gumbo 2010-11-16 16:17:30