删除以#或;开头的所有行在Notepad ++中

时间:2011-03-03 20:10:19

标签: regex notepad++

使用Notepad ++,如何删除以#或;?

开头的所有行

5 个答案:

答案 0 :(得分:103)

查找

^[#;].*

什么都不替换。 ^表示行的开头,[#;]是与#;匹配的字符类,.*与行中的任何其他内容匹配

在6.0之前的Notepad ++版本中,由于其正则表达式引擎的限制,您将无法实际删除这些行;替换结果为每行匹配的空行。换句话说,这个:

# foo
; bar
statement;

将变成:



statement;

但是,如果您将\r\n\r\n添加到模式的末尾,则替换将在Notepad ++ 6.0中有效,具体取决于文件使用的结尾行,结果在:

statement;

答案 1 :(得分:7)

正如其他人所说,在Notepad ++ 6.0及更高版本中,可以使用“替换”功能删除所有以“;”开头的行。或“#”。

Tao提供了一个正则表达式作为起点,但它没有考虑“;”之前可能存在的空格。或给定行上的“#”字符。例如,以“;”开头的行使用Tao的正则表达式^(#|;).*\r\n时,不会删除“#”但“tabbed-in”。

Tao的正则表达式没有说明BoltClock的答案中提到的警告:系统中换行符的差异。

改进是使用^(\s)*(#|;).*(\r\n|\r|\n)?,它考虑了前导空格和换行字符差异。此外,尾随?处理文件的最后一行以#;开头,但不以换行符结尾的情况。

对于好奇,可以辨别在给定文档中使用哪种类型的换行符(并且可以使用多种类型):View - >显示符号 - >显示行尾。

答案 2 :(得分:6)

它可能,但不是直接。

简而言之,转到搜索,使用正则表达式,选中“标记行”并单击“全部查找”。它会为所有这些行生成书签。

在搜索菜单中有一个点“删除书签行”瞧。

我在这里找到答案(正确的答案是第二个,不是被接受的!): How to delete specific lines on Notepad++?

答案 3 :(得分:3)

也许你应该尝试

^[#;].*$

^匹配开头,$结束。

答案 4 :(得分:0)

在Notepad ++中,您可以使用“查找”对话框中的“标记”选项卡为与您的查询匹配的所有行添加书签,这些行可以是正则表达式或普通卡(通配符)。

然后使用搜索>书签>删除已添加书签的行。