使用Notepad ++删除与正则表达式匹配的所有行(非)

时间:2015-12-24 22:18:16

标签: regex notepad++

如何在Notepad ++中删除与正则表达式匹配或不匹配的所有行?

在Vim中,我会删除所有匹配的行:

:g/regex/d

并删除所有不匹配的行:

:!g/regex/d

我在Notepad ++中寻找这些命令。

正如“Notepad++ - delete all lines with certain text”中所解释的那样,我通常会采用消隐匹配线并删除空行的方法。有更简单的方法吗?

根据this answer,Notepad ++> = 6.0版本支持正则表达式中匹配的换行符,因此允许直接删除整行而不先创建空行。当替换为空字符串时,以下模式应删除包含“foobar”的所有行:

^.*foobar.*\r\n

现在,正如“Regular expression to match a line that doesn't contain a word?”中所讨论的那样,否定正则表达式并不简单。删除Notepad ++中不包含“foobar”的行将需要以下模式:

^((?!foobar).)*\r\n

因为这是一个非常复杂的命令,只是为了删除不包含单词的行(或者可能是更复杂的表达式),我想知道是否有更简单的解决方案。

1 个答案:

答案 0 :(得分:16)

Find对话框的Mark标签上,您可以为与之匹配的行添加书签...然后在菜单Search > Bookmark > Remove Unmarked LinesRemove Bookmarked lines