使用Notepad ++从文件中删除每第二行

时间:2014-05-26 17:37:52

标签: regex notepad++

我正在寻找一些正则表达式的帮助。

我有一个文本文件,没有什么超级重要,但我想删除它的每一行 - 我尝试过这个指南:Delete every other line in notepad++

但是我无法让它工作,我使用的正则表达式是否正常?我是正则表达式的noob

查找

([^\n]*\n)[^\n]*\n

替换为:

$1

无论我尝试什么(开头的鼠标位置,ctrl + a和全部替换)我都无法让它工作。我感谢任何帮助。

我已将正则表达式放在此处:http://regexpal.com/如果我删除了最终\ n,则会突出显示各行。

1 个答案:

答案 0 :(得分:8)

确保为搜索模式选择正则表达式 ...

此外,您可能需要make that final newline optional。如果行数为偶数且您没有尾随换行符,则不会删除最后一行。

([^\n]*\n)[^\n]*\n?

<强>更新

了解Windows handle new lines\r\n的关系,而不仅仅是\n。请尝试updating the expression将此考虑在内:

([^\r\n]*[\r\n]+)[^\r\n]*[\r\n]*

最终更新:

感谢@ zx81,我现在知道N ++使用PCRE,因此\R可以用于unicode换行符。但是,[^\R]无法正常工作(除了R之外其他任何内容),因此您需要保留[^\r\n]。这can be simplified as

([^\r\n]*\R)[^\r\n]*\R?