2015-01-21 45 views
0
<h1>title 1</h1 w:id="0"/><p>content</p><h1>title 2</h1 w:id="1"/>... 

我想從</h1 w:id:="0 or 1 ect "/>preg_replace函數:正則表達式不起作用

更換w:id="0"/我用這個代碼:

preg_replace("</h1 (.*?)>",'',$html) 

但它不工作了

+1

定義 「不行」。 – 2015-01-21 11:05:30

+1

你可能需要額外的[正則表達式分隔符](http://php.net/manual/en/regexp.reference.delimiters.php)。 – mario 2015-01-21 11:06:15

+1

只需添加一點:你現在得到什麼,你期望什麼,所有的嘗試! – Rizier123 2015-01-21 11:06:30

回答

0

你缺少的你的正則表達式的分隔符。

正則表達式需要一個'起始標記'和一個類似的'結束標記',所以PHP可以將它的內容解釋爲匹配項,並將其全部標記出來。
沒有公認的分隔符,在簡單文本和正則表達式之間不可能區分開來。

試試這個正則表達式:

@</h1 (.*?)>@ 

或者:

~</h1 (.*?)>~ 

PHP支持多幾個分隔符,像<>/


作爲一個方面說明,我建議以下的正則表達式:

~</h1([^>]+)?>~i 
0

試試這個

preg_replace("/<\/h1 (.*?)>/i",'</h1>',$html);