preg_replace:正则表达式不起作用

时间:2015-01-21 11:04:17

标签: php preg-replace

<h1>title 1</h1 w:id="0"/><p>content</p><h1>title 2</h1 w:id="1"/>...

我想从w:id="0"/

替换</h1 w:id:="0 or 1 ect "/>

我使用此代码:

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

但它不再起作用了

2 个答案:

答案 0 :(得分:0)

你遗漏了你的正则表达式的分隔符。

正则表达式需要一个起始标记&#39;以及类似的结束标记&#39;,因此PHP可以将其内容解释为匹配,以及所有标记。
如果没有公认的分隔符,就不可能在简单文本和正则表达式之间进行区分。

试试这个正则表达式:

@</h1 (.*?)>@

或者:

~</h1 (.*?)>~

PHP支持更多分隔符,例如<>/


作为旁注,我建议使用以下正则表达式:

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

答案 1 :(得分:0)

试试这个

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