我正在寻找一个正则表达式来隔离一个 html 标记。这包括TAG、ATTRIBUTES 和里面的CONTNET。
假设我有这个:
<html>
<body>
aajsdfkjaskd
<TAGNAME name="bla" context="non">hfdfhdj </TAGNAME>
</body>
</html>
我需要一个会返回的正则表达式:
<TAGNAME name="bla" context="non">hfdfhdj </TAGNAME>
谢谢,乔
我正在寻找一个正则表达式来隔离一个 html 标记。这包括TAG、ATTRIBUTES 和里面的CONTNET。
假设我有这个:
<html>
<body>
aajsdfkjaskd
<TAGNAME name="bla" context="non">hfdfhdj </TAGNAME>
</body>
</html>
我需要一个会返回的正则表达式:
<TAGNAME name="bla" context="non">hfdfhdj </TAGNAME>
谢谢,乔
不要使用正则表达式,而是使用 HTML 解析器。更可靠,更容易使用。
如果您是 PHP 开发人员,我建议您使用这个 (http://simplehtmldom.sourceforge.net/)。
看看HTML Agility Pack,它会让事情变得容易得多。
使用这个正则表达式<TAGNAME.+?</TAGNAME>
如果这是您想要做的主要事情,那么 XLST 是一个很好的工具。您可以轻松地仅选择 TAGNAME 并复制属性和文本。有关介绍,请参见http://www.w3schools.com/xsl/。
首先:不要这样做。使用正则表达式解析 HTML 是维护的噩梦,并且很可能在任何真实世界的 HTML 示例中都失败。有更好的选择(比如使用HTML Agility pack之类的 HTML 解析器)。
但是,要回答您的问题,如果HTML 代码,以下正则表达式将执行您想要的操作
它可以扩展以涵盖其中一些情况,但您真的不想 =)
<TAGNAME(<TAGNAME (?<tagcounter>)|</TAGNAME>(?<-tagcounter>)|.)*</TAGNAME>(?(tagcounter)(?!))
你RegexOptions.SingleLine
也需要。在Ideone.com上查看它的实际应用