preg_replace:正则表达式不起作用


preg_replace: Regular expression not work

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

我想从</h1 w:id:="0 or 1 ect "/>中替换w:id="0"/

我使用此代码:

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

但它不再起作用

试试这个

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

您缺少正则表达式上的分隔符。

正则表达式需要一个"起始标记"和一个类似的"结束标记",因此 PHP 可以将其内容解释为匹配项,以及它的所有标志。
如果没有可识别的分隔符,就不可能区分简单文本和正则表达式。

试试这个正则表达式:

@</h1 (.*?)>@

或:

~</h1 (.*?)>~

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


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

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