在Notepad ++中删除第n次出现的某些文本

时间:2013-12-15 13:37:00

标签: regex notepad++

我有一个很大的html文件,我必须删除p元素的每个第n(第6,第7)次出现,我怎样才能在notepad ++中使用pyscript或regex。

<p>Some text</p>
<p>Some text</p>
<p>Some text</p>

由于

2 个答案:

答案 0 :(得分:2)

我建议你使用一些用循环或其他必需逻辑读取文件和删除的编程语言。由于Notepad ++中的正则表达式非常差,如果删除第6和第7次,则下一个第12和第13次出现现在是第10和第11次,并且相应地进一步下降。

答案 1 :(得分:1)

转到搜索&gt;替换菜单(快捷键 CTRL + H )并执行以下操作:

  1. 找到:

    (?:<p>[^<]+<\/p>\r?\n){5}\K(?:<p>[^<]+<\/p>\r?\n){1,2}((?:<p>[^<]+<\/p>\r?\n)*)
    
  2. 替换:

    $1
    
  3. 选择单选按钮“正则表达式”

  4. 然后按Replace All

  5. 您可以在regex101在线测试。

    请注意,这将仅删除连续<p>元素列表的第6和第7个元素。如果要在同一个连续列表中删除第12个和第13个元素,那么Zaheer是正确的,您应该使用HTML解析器。