【发布时间】:2010-09-20 22:08:20
【问题描述】:
我正在使用 Wordpress,需要能够删除图像和空白段落。到目前为止,我已经发现了如何毫无问题地删除图像。但是,我需要删除空段落标签。我正在使用 PHP preg_replace 来处理正则表达式函数。
所以,作为一个例子,我有字符串:
<p style="text-align:center;"><img src="http://www.blah.com/image.jpg" alt="Blah Image" /></p><p>Some text</p>
我在上面运行这个正则表达式:
/<img.*?(>)/
我最终得到了这个字符串:
<p style="text-align:center;"></p><p>Some text</p>
然后我需要能够删除空段落。我试过这个,但它删除了所有段落和段落的内容:
/<p[^>]*><\/p[^>]*>/
非常感谢任何帮助/建议!
【问题讨论】:
-
我在regexpal.com 上尝试过,它与示例字符串匹配得很好......
-
请阅读stackoverflow.com/questions/1732348/…,然后使用其他用于解析HTML的解决方案,例如XSLT、DOM或simplehtmldom.sourceforge.net
-
@Kyte 谢谢!正则表达式确实有效。我现在意识到还有一些其他问题需要首先解决。
-
re: XSLT - 通常是的,但这是来自 wordpress,这意味着十分之九的人从 MS Word 粘贴它,它是无效的任何东西(除了一个字符串)。
-
他没有解析 HTML,他只是剥离了一些标签。我认为这是一种合理的方法,但是@matthewpavkov,如果您使用“/”以外的字符来分隔您的正则表达式,您的任务将变得更容易。然后你不必在你的表达式中逃避正斜杠。 '#' 字符是一个典型的替代品,例如:'#
]*>
[^>]*>#'。顺便说一句,您的正则表达式在 PHP 5.2.6 中按预期工作,使用 preg_replace()。
标签: php regex wordpress preg-replace