使用 Notepad++ 删除所有(不)匹配正则表达式的行
Delete all lines (not) matching a regex using 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
因为仅用于删除不包含单词(或可能更复杂的表达式)的行,键入该命令非常复杂,我想知道是否有更简单的解决方案。
在 Find
对话框中,在 Mark
选项卡上,您可以为匹配的行添加书签... 然后在菜单 Search > Bookmark > Remove Unmarked Lines
或 Remove Bookmarked lines
如何在 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
因为仅用于删除不包含单词(或可能更复杂的表达式)的行,键入该命令非常复杂,我想知道是否有更简单的解决方案。
在 Find
对话框中,在 Mark
选项卡上,您可以为匹配的行添加书签... 然后在菜单 Search > Bookmark > Remove Unmarked Lines
或 Remove Bookmarked lines