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

n34*_*nda 4 regex notepad++

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

我有一个文本文件,没有什么超级重要,但我想删除它的每一行 - 我尝试按照本指南:删除记事本中的每隔一行++

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

找:

([^\n]*\n)[^\n]*\n
Run Code Online (Sandbox Code Playgroud)

用...来代替:

$1
Run Code Online (Sandbox Code Playgroud)

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

我把正则表达式放在这里:http://regexpal.com/如果我删除了最终\n它会突出显示各行.

Sam*_*Sam 8

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

此外,您可能希望将最终换行设置为可选.如果行数为偶数且您没有尾随换行符,则不会删除最后一行.

([^\n]*\n)[^\n]*\n?
Run Code Online (Sandbox Code Playgroud)

更新:

怎么看的Windows处理新线\r\n,而不是只\n.尝试更新表达式以将此考虑在内:

([^\r\n]*[\r\n]+)[^\r\n]*[\r\n]*
Run Code Online (Sandbox Code Playgroud)

最后更新:

感谢@ zx81,我现在知道N ++使用PCRE,因此\R可以用于unicode换行符.但是[^\R]不起作用(除了R字面意思,它会查找任何内容),因此您需要保留[^\r\n].这可以简化为:

([^\r\n]*\R)[^\r\n]*\R?
Run Code Online (Sandbox Code Playgroud)

  • +1 Sam,但由于N ++使用PCRE,你可以用`\ _R`替换`[\ r \n]`,用`[^ ​​\ R]`替换`[^\r \n]`` (2认同)