使用Notepad ++,如何删除以#或;?
开头的所有行答案 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 ++中,您可以使用“查找”对话框中的“标记”选项卡为与您的查询匹配的所有行添加书签,这些行可以是正则表达式或普通卡(通配符)。
然后使用搜索>书签>删除已添加书签的行。