Notepad++ 如何删除记事本+中每个书签行后的3行,包括书签行+;

Notepad++ 如何删除记事本+中每个书签行后的3行,包括书签行+;,notepad++,Notepad++,我有一个很长的文本文档,我为很多行添加了书签,但是有没有办法在添加了书签的行(包括书签行)之后删除几行呢 所有带书签的行都有一个相同的文本,这就是它们的书签方式。 提前谢谢 这是一个示例文件 Line 1 Line 2 Line 3 Common Line line 5 Line 6 Common Line line 8 Line 9 line 10 除了第4行和第7行有相同的文本外,这些行中没有任何模式 我要做的是删除第4行(公共行)、第5行、第6行和第7行(公共行)。使用记事本++正则表

我有一个很长的文本文档,我为很多行添加了书签,但是有没有办法在添加了书签的行(包括书签行)之后删除几行呢

所有带书签的行都有一个相同的文本,这就是它们的书签方式。 提前谢谢

这是一个示例文件

Line 1 
Line 2
Line 3
Common Line
line 5
Line 6
Common Line
line 8
Line 9
line 10
除了第4行和第7行有相同的文本外,这些行中没有任何模式


我要做的是删除第4行(公共行)、第5行、第6行和第7行(公共行)。

使用记事本++正则表达式查找并替换:

查找内容:

Common Line[\s\S]+?Common Line
将其替换为零。

这样做:

  • Ctrl+H
  • 查找内容:
    (^Common Line$).\1\R?
  • 替换为:
    留空
  • 根据您的要求,选择匹配大小写或取消选择
  • 检查环绕
  • 检查正则表达式
  • 检查
    。匹配换行符
  • 全部替换
说明:

(               : start group 1
  ^Common Line$ : literally
)               : end group 1
.*?             : 0 or more any character, not greedy
\1              : backreference to group 1 (ie. same content)
\R?             : any kind of linebreak, optional in order to deal with last line if it hasn't linebreak
Line 1 
Line 2
Line 3
line 8
Line 9
line 10
给定示例的结果:

(               : start group 1
  ^Common Line$ : literally
)               : end group 1
.*?             : 0 or more any character, not greedy
\1              : backreference to group 1 (ie. same content)
\R?             : any kind of linebreak, optional in order to deal with last line if it hasn't linebreak
Line 1 
Line 2
Line 3
line 8
Line 9
line 10

我不知道为什么我对这个问题持否定态度。这有什么问题?这听起来像是正则表达式很容易做到的事情。你能解释一下你用什么标准来给行添加书签吗?你到底想删除什么?举个例子也很有帮助。@Marathon55以上是我想做的事情。你是否还想删除第8行和第9行,因为它们是公共行之后的两行?@Marathon55不是第8行和第9行。这样说,前两行之间的任何内容都将被删除。如果还有另外两条公共线,也要这样做