2013-03-10 238 views
0

我一直在嘗試提出一段時間的解決方案,但尚未找到可靠工作的解決方案。用PHP正則表達式來替換由字母或空白包圍的值

我在每個換行符被表示爲一個零字符串(0)

$string ="The quick brown fox0jumped over the lazy dog 0with 1308mm to spare."; 

我正在尋找一種方式來代替每個0,其不與HTML標籤的號碼的一部分「BR」。

到目前爲止,我得到的最接近是:

preg_replace('/([a-zA-Z ])0([a-zA-Z ])/', '$1\<br\>$2', $string); 

回答

5

這樣的事情,你應該使用斷言:

/(?<!\d)0(?!\d)/ 

此外,第二個參數只是一個字符串。絕對不需要跳過尖括號 - 事實上,您也不需要在正則表達式中將它們轉義出來。所以只需使用<br>作爲第二個參數。

+0

+1簡單而正確:) – 2013-03-10 16:42:01

+0

謝謝,這樣做!需要更多地研究Lookahead和Lookbehind斷言。 – Jenszor 2013-03-10 16:42:51