删除包含特定单词的行

时间:2012-03-20 21:42:38

标签: regex notepad++

我想删除所有包含单词“False”的行

例如,如果我有一个包含以下内容的文本文件:

MyEmail@gmx.net|J|1983>2012>3000|Good|[0=%]
MyEmail@hotmail.net|N|1985>2012>3000|False|[~~~'#'***+++~~~]
MyEmail@hotmail.net|N|1985>2012>3000|Good|[$"$!]|Number 2123

MyEmail@gmx.net|J|1983>2012>3000|Good|[0=%]
MyEmail@hotmail.net|N|1985>2012>3000|Good|[$"$!]|Number 2123

我应该在Notepad ++中使用哪个正则表达式删除不需要的行?

4 个答案:

答案 0 :(得分:13)

Notepad++ (v6.0)的最新版本支持PCRE,因此您可以执行以下操作:

搜索:.*?False.*\r?\n
替换为:nothing

答案 1 :(得分:5)

它可能就像进入Notepad ++工具菜单并输入要搜索的文本一样简单,然后规定删除它找到的每一行。

否则识别整行的正常正则表达式可能是这样的 -

重做

如果默认值为(。)点为除换行符之外的任何内容,则为

.*False.*\n?

否则,这个

[^\n]*False[^\n]*\n?

如果线路上有'False',它们应匹配整行(加上换行符) 任何更像'False'的东西都必须被分隔符包围,这是额外的逻辑。

答案 2 :(得分:1)

你做不到。 Notepad ++ does not support mixing RegExps with line ends

  

删除行尾或连接行只能在扩展模式下完成。

  

“扩展”选项将\ n和\ r显示为可以匹配的字符。与普通搜索模式一样,Notepad ++正在寻找确切的字符。

答案 3 :(得分:1)

你不能一步完成正则表达式,但使用书签有两个步骤。

在“查找”对话框中,有一个“书签行”选项,可用于标记与查询匹配的行以进行删除。在较新版本的Notepad ++中,已将其移至“查找”对话框的“标记”选项卡。

一旦标记了所需的行,就从菜单栏中选择搜索>书签>删除已添加书签的行。顾名思义,这将删除上一次搜索中标记的所有行。