我在这个html文本中有一个模式:
<html>
<body>
<font> .... (some data)
</font>
... (some data)
<table class="list" border=1 cellspacing=0 cellpadding=1 rules=groups borderColor=black >
... (table data)
</table>
<font> .... (some data)
</font>
... (some data)
<table class="list" border=1 cellspacing=0 cellpadding=1 rules=groups borderColor=black >
... (table data)
</table>
<font> .... (some data)
</font>
... (some data)
<table class="list" border=1 cellspacing=0 cellpadding=1 rules=groups borderColor=black >
... (table data)
</table>
...
(and the pattern is repeated)
</body>
</html>
我想删除所有表格(及其内容),剩下的就剩下了。我试过这个:
正则表达式:
(.*)(<table class="list" border=1 cellspacing=0 cellpadding=1 rules=groups borderColor=black >)(.*)(</table>)(.*)
替换
\1\5
但没有任何反应......我怎么能解决它?
答案 0 :(得分:3)
转到Search
&gt; Replace
菜单(快捷键 CTRL + H )并执行以下操作:
找到:
<table.+?<\/table>
替换:
leave empty!
选择单选按钮“正则表达式”并选中“。匹配换行符”。
然后按Replace All
请注意,这只是一个快速的解决方案。通常,您不应使用正则表达式解析/编辑XML文件。
您可以使用regex101上的示例进行测试。
答案 1 :(得分:1)
通常,您不应该使用正则表达式来操纵HTML,但在这种有限的情况下,您可以。我不能保证在notepad ++中工作,因为我不使用它,但正则表达式是标准的。
假设:没有嵌套表,多行模式,不情愿的量词。
<table[^>]*>.*?</table>
关键部分是.*?
。 *?
是*
的不情愿(非贪婪)版本,这意味着它尽可能少地匹配;在这种情况下,这将是表格的全部内容。
答案 2 :(得分:1)
使用正则表达式将<table[\s\S]+?<\/table>
的所有结果替换为空字符串。