使用preg_replace

时间:2010-03-09 22:25:47

标签: php html

我如何用空行替换具有类pagenum pncolor的所有span标签(以及它们内部的whatevers)。 str_replace不起作用,因为所有这些名称都不同,所以我假设我使用preg_replace,但我确定它是如何工作的。

<span class='pagenum pncolor'><a id='page_001' name='page_001'></a>001</span>
<p>Some text</p>

<span class='pagenum pncolor'><a id='page_130' name='page_130'></a>130</span>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>

<span class='pagenum pncolor'><a id='page_120' name='page_120'></a>120</span>
<p>Some text</p>

<span class='pagenum pncolor'><a id='page_100' name='page_100'></a>100</span>
<p>Some text</p>

3 个答案:

答案 0 :(得分:2)

使用此正则表达式:#<span class='pagenum pncolor'>.*?</span>#si

答案 1 :(得分:1)

我要提到强制性的:You can't parse [X]HTML with regex. Because HTML can't be parsed by regex. Regex is not a tool that can be used to correctly parse HTML.

然而,我在这种情况下使用正则表达式也是犯了......如果我这样做,我会使用@andreas的答案。

答案 2 :(得分:0)

假设$ text = {THE_HTML_STRING_YOU_POSTED_IN_YOUR_QUESTION};

你可以尝试:

preg_replace("/<span class='pagenum pncolor'>(.*)<\/span>/",'',$text);