Regex 删除以给定字符串开头的行和以下n行

Regex 删除以给定字符串开头的行和以下n行,regex,notepad++,Regex,Notepad++,我有一个类似下面的HTML文件: <tr> <td>SOMETHING1</td> <td>SOMETHING2</td> <td>SOMETHING3</td> </tr> <tr> <td>SOMETHING1</td> <td>SOM

我有一个类似下面的HTML文件:

      <tr>
        <td>SOMETHING1</td>
        <td>SOMETHING2</td>
        <td>SOMETHING3</td>
      </tr>
      <tr>
        <td>SOMETHING1</td>
        <td>SOMETHING2</td>
        <td>SOMETHING3</td>
      </tr>
      <tr>
        <td>SOMETHING1</td>
        <td>SOMETHING2</td>
        <td>SOMETHING3</td>
      </tr>

    </table>
    <br>
    </div>
    <a href="javascript:;" onmousedown="toggleDiv('20161023');">Sunday 23 ...   </a></h3>
    <br>
    <div class="time_div" id="20161023" style="display:none">
    <p class="dep_parag">Test automation on Sunday 23 October</p>
    <table id="table" border="1" cellpadding="3" cellspacing="0">

    <tr>
        <td>SOMETHING1</td>
        <td>SOMETHING2</td>
        <td>SOMETHING3</td>
      </tr>
      <tr>
        <td>SOMETHING1</td>
        <td>SOMETHING2</td>
        <td>SOMETHING3</td>
      </tr>
      <tr>
        <td>SOMETHING1</td>
        <td>SOMETHING2</td>
        <td>SOMETHING3</td>
      </tr>

有些事
什么
有些事
有些事
什么
有些事
有些事
什么
有些事


10月23日星期日的自动化测试

有些事 什么 有些事 有些事 什么 有些事 有些事 什么 有些事
如您所见,有一个表行列表被一个带有一些javascript的部分(该部分以开头和结尾)分割

这只是一个包含超过300.000个表行的html页面的提取

我必须用javascript删除这个部分,因为我只需要一个长的表行列表,干净,它们之间没有任何内容

我不想手动操作,这太疯狂了,我想要一些东西(正则表达式)只需单击一下就可以清理文件(我过去在记事本++上运行简单的正则表达式,但这个对我来说有点难)

我在想这样的事情:

删除到cellspacing=“0”的所有行>

删除8行及其后的所有行。

有人能这么温柔地帮我做这个正则表达式吗


非常感谢!:)

我不太明白您要删除哪个部分(我的理解是从
cellspacting=“0”>
),但应该相当简单。你是说像这样的事吗

<a href="javascript([^\n]+\r\n){5}

我不太明白您要删除哪个部分(我的理解是从
cellspacting=“0”>
?),但这应该相当容易。你是说像这样的事吗

<a href="javascript([^\n]+\r\n){5}

假设您不担心不规则的空白,那么以下搜索模式如何:

</table>.*?<table.*?>
*?

使用空的“替换为”字符串,勾选“正则表达式”和“.matches newline”选项。

假设您不担心不规则的空格,那么以下搜索模式如何:

</table>.*?<table.*?>
*?

使用空的“替换为”字符串,勾选“正则表达式”和“.matches newline”选项。

对于php、python,此正则表达式将使用flags单行,对于java,则使用DOTALL选项启动表达式

\<\/table\>.+?(?=javascript\:\;).+?(?=\<table.+?cellspacing\=\"0\"\>)\<table.+?cellspacing\=\"0\"\>
\.+?(?=javascript\:\;).+?(?=\)\

此正则表达式将使用flags单行,用于php、python,用于java初始化表达式,并带有DOTALL选项

\<\/table\>.+?(?=javascript\:\;).+?(?=\<table.+?cellspacing\=\"0\"\>)\<table.+?cellspacing\=\"0\"\>
\.+?(?=javascript\:\;).+?(?=\)\

不确定是否正确理解,请尝试使用搜索模式正则表达式,将此正则表达式替换为空的\r\n(.*\r\n){2}.*javascript.*\r\n(.*\r\n){4}不确定是否正确理解,请尝试使用搜索模式正则表达式,将此正则表达式替换为空的\r\n(.*\r\n){2}.*javascript.*\r\n(.*\r\n){4}您必须使
不贪婪(即
*?
)或您将删除比所需多得多的内容。是的,绝对正确-在我的N++窗口中丢失翻译!已更新。您必须使
*
不贪婪(即
*?
)或者,您将删除比所需多得多的内容。是的,绝对正确-从我的N++窗口翻译时丢失!已更新。为什么要转义所有这些字符?在非字母数字字符前面加上\表示该字符代表其自身总是足够安全的。为什么要转义所有这些字符?总是安全的在非字母数字字符前面加\表示该字符代表其本身。我知道。但删除下面的8行同样简单。利用表结构,只需。*=>即可。(必须勾选.Include new line选项)我电脑上的一些NPP版本曾经有一个bug:在regex中替换为空字符串会使NPP崩溃。所以通常我会替换为某物。但我同意非贪婪匹配是正式的方法。我知道。但是删除下面的8行同样简单。利用表结构,只要。*=>就可以了。(必须勾选.Include new line选项)我电脑上的某个NPP版本曾经有一个bug:在正则表达式中用空字符串替换会使NPP崩溃。所以通常我用sth替换。但我同意非贪婪匹配是正式的方法。