notepad ++ regex:从HTML文本中删除所有表

时间:2013-11-28 17:31:04

标签: regex notepad++

我在这个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

但没有任何反应......我怎么能解决它?

3 个答案:

答案 0 :(得分:3)

转到Search&gt; Replace菜单(快捷键 CTRL + H )并执行以下操作:

  1. 找到:

    <table.+?<\/table>
    
  2. 替换:

    leave empty!
    
  3. 选择单选按钮“正则表达式”并选中“。匹配换行符”。

  4. 然后按Replace All

  5. 请注意,这只是一个快速的解决方案。通常,您不应使用正则表达式解析/编辑XML文件。

    您可以使用regex101上的示例进行测试。

答案 1 :(得分:1)

通常,您不应该使用正则表达式来操纵HTML,但在这种有限的情况下,您可以。我不能保证在notepad ++中工作,因为我不使用它,但正则表达式是标准的。

假设:没有嵌套表,多行模式,不情愿的量词。

<table[^>]*>.*?</table>

关键部分是.*?*?*的不情愿(非贪婪)版本,这意味着它尽可能少地匹配;在这种情况下,这将是表格的全部内容。

答案 2 :(得分:1)

使用正则表达式将<table[\s\S]+?<\/table>的所有结果替换为空字符串。