正则表达式来隔离html标记
Regular Expression to isolate an html tag
我正在寻找一个正则表达式来隔离html标记。这包括内部的TAG、ATTRIBUTES和CONTNET。
假设我有这个:
<html>
<body>
aajsdfkjaskd
<TAGNAME name="bla" context="non">hfdfhdj </TAGNAME>
</body>
</html>
我需要一个返回的正则表达式:
<TAGNAME name="bla" context="non">hfdfhdj </TAGNAME>
谢谢,Joe
不要使用正则表达式,而是使用HTML解析器。更可靠,更易于使用。
如果你是PHP开发人员,我建议你使用这个(http://simplehtmldom.sourceforge.net/)。
看看HTML敏捷包,它会让事情变得更容易。
使用此正则表达式<TAGNAME.+?</TAGNAME>
首先:不要这样做。用正则表达式解析HTML是一场维护噩梦,在任何现实世界中的HTML示例中都很可能失败。还有更好的选择(比如使用像HTML敏捷包这样的HTML解析器)。
不过,为了回答您的问题,如果HTML代码
- 格式良好(没有缺少结束标记等)
- 不包含带有"TAGNAME"的注释
- 不包含带有"TAGNAME"的脚本块
- 也许更多
它可以扩展到涵盖其中一些情况,但你真的不想=)
<TAGNAME(<TAGNAME (?<tagcounter>)|</TAGNAME>(?<-tagcounter>)|.)*</TAGNAME>(?(tagcounter)(?!))
你也需要RegexOptions.SingleLine
。在Ideone.com 上查看它的实际操作
如果这是您尝试做的主要事情,那么XLST是一个很好的工具。您可以轻松地只选择TAGNAME并复制到属性和文本上。看见http://www.w3schools.com/xsl/介绍。
相关文章:
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- HTML标记在脚本标记中工作
- 是否可以添加这行“;“照原样”;在HTML标记中
- HTML锚标记无法在android平台中下载文件
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- html文件中的script标记根本不起作用
- 如果匹配项在特定的html标记中,则跳过regex匹配
- 使用 Pure JS 更改 HTML 标记名称
- 在Android WebView中通过javascript检测点击HTML选项标记
- 上传文件时从 html 中删除脚本标记.html
- 在表单标记(HTML,JavaScript)中插入
- 无法将 XML 数据加载到表标记 Html
- 将具有相同ID类和标记HTML的多个元素拖放到屏幕上的任何位置
- 不允许在输入标记html中键入特定的单词
- 创建一个字段以接受标记HTML/JS
- 将文本插入锚定标记html
- 如何用灰色标记html范围滑块(所有已选择的区域)
- 加载谷歌地图标记HTML的要求
- 如何从jquery中获取dl标记HTML的值
- 从javascript中获取其他字段的值,javascript是select标记html的一部分