我正在尝试删除HTML文件中的表格,特别是对于以下文档,我想删除标记<TABLE....> and </TABLE>
中的任何内容。该文档包含多个表格,其中包含文本。
然而,我提出的表达式<TABLE.*>\s*[\s|\S]*</TABLE>\s*
将删除表之间的文本。实际上,它会删除第一个<TABLE>
和最后一个</TABLE>
标记之间的所有内容。我想保留两者之间的文本,只删除表格。任何建议都非常感谢。谢谢。
====================
<TABLE STYLE=xxx, Font=yyy, etc>
table texts that should be DELETED...
</TABLE>
other texts that should be KEPT...
<TABLE STYLE=xxx, Font=yyy, etc>
table texts that should be DELETED...
</TABLE>
==========================================
答案 0 :(得分:2)
答案是使用HTML或SGML解析器,.NET有一些:
http://htmlagilitypack.codeplex.com/
SGML parser .NET recommendations
如果您绝对想要使用正则表达式,请熟悉balancing groups,否则嵌套表将会中断。这并不容易,并且可能比常规SGML解析器执行得慢得多。但请注意:看到你的表情,我认为你是一个正则表达式的新手(提示:不惜任何代价避免贪婪.
匹配),所以这可能还不是你的一杯茶。
答案 1 :(得分:2)
因为即使我告诉你 你真的应该 ,我知道你不会去看HTML解析器,我只会回答这个问题。
这只匹配表:
<table.*?>.*?</table>
它需要两个选项:dotall
和ignoreCase
。
您可以在此处试用:http://gskinner.com/RegExr/
现在考虑使用Lucero建议的HTML Agility Pack吗?
编辑:也许这就是你的意思,抱歉: