如何使用正则表达式找到<element> something </element>的所有匹配项?

时间:2009-10-11 18:28:30

标签: php html regex

所以让我说我有:

<any_html_element>maybe some whitespaces <br/>Some text</any_html_element>

我想删除<br/>之后的第一个<any_html_element>

我该怎么做?

2 个答案:

答案 0 :(得分:8)

首先不使用RegEx,而是使用HTML解析器来识别您想要操作的代码块。

在您隔离实际代码后,您可以执行替换以删除<br/>


以下是一些要调查的PHP HTML解析器链接:

答案 1 :(得分:2)

搜索此正则表达式:

(<any_html_element>.*?)</br>

并替换为:

$1

如果两个标签之间可能存在换行符,请启用单行模式。你可以用PHP中的/ s来做到这一点。

如果使用any_html_element表示您想要允许任何元素,请使用此正则表达式:

(<\w[^<>]+>.*?)</br>

替换文字保持不变。

虽然只有一个正则表达式无法解析HTML,但Uffo并没有尝试解析HTML。他只是想删除一个标签。正则表达式会做得很好。