【问题标题】:NotePad++ : How to delete a line ( also the next line) that contains a specific word?NotePad++:如何删除包含特定单词的行(也是下一行)?
【发布时间】:2018-06-11 01:41:00
【问题描述】:

假设我们有这个文本,我想删除包含“删除我”的每一行以及使用 NotePad++ 的下一行

a random text here1111
a random text here2222
a random text here delete me3333
a random text here 4444
delete me a random text here5555
a randomtext66666

所以在应用我想要的之后,文本会是这样的:

a random text here1111
a random text here2222

【问题讨论】:

  • @ArnoC 这不是重复的,因为在我的情况下,我不仅要删除两行 1
  • 为了澄清,只需制作一个正则表达式,以便它选择所述行和下一行。然后问题就归结为我上面链接的帖子。
  • 也同意@ArnoC 重复不是完全相同的问题,它是在提供的链接中解释的同一主题。

标签: notepad++


【解决方案1】:

您可以通过创建一个匹配您的问题的正则表达式轻松地做到这一点。

在您的情况下,这样的正则表达式是:

(.)*(delete me)(.)*\n(.)*

这将选择行本身和下一行。现在只需删除与所述正则表达式相对应的行,为什么在记事本++中有可能。 (见Regex: Remove lines containing

如果您想调整正则表达式,请随意摆弄它。 Regxr 允许非常轻松地调整和测试任何正则表达式。

【讨论】:

  • 嗨,谢谢你的回答,Notepad++怎么样,你知道我该怎么做吗?
  • 在我的回答中有一个关于如何在记事本++中进行操作的链接。
  • 对不起@ArnoC 但在上面的链接中我没有找到任何有用的东西,无论如何,我在其他答案中找到了解决方案,再次感谢您的帮助
【解决方案2】:
  • Ctrl+H
  • 查找内容:.*delete me.*\R.*(?:\R|$)
  • 替换为:LEAVE EMPTY
  • 检查环绕
  • 检查正则表达式
  • 请勿查看. matches newline
  • 全部替换

说明:

.*delete me.*   : literally "delete me" surrounded with 0 or more any character but newline
\R              : any kind of line break
.*              : 0 or more any character but newline
(?:             : start non capture group
  \R            : any kind of line break
 |              : OR
   $            : end of line
)               : end group

给定示例的结果:

a random text here1111
a random text here2222

【讨论】:

  • 好答案,但是最后两行怎么样,也应该删除??
  • 如果在最后一行之前包含删除我这2行将不受影响
猜你喜欢
  • 1970-01-01
  • 2020-05-11
  • 1970-01-01
  • 2021-03-19
  • 2015-07-14
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 2019-10-05
相关资源
最近更新 更多