我正在寻找一些正则表达式的帮助。
我有一个文本文件,没有什么超级重要,但我想删除它的每一行 - 我尝试过这个指南:Delete every other line in notepad++
但是我无法让它工作,我使用的正则表达式是否正常?我是正则表达式的noob
查找
([^\n]*\n)[^\n]*\n
替换为:
$1
无论我尝试什么(开头的鼠标位置,ctrl + a和全部替换)我都无法让它工作。我感谢任何帮助。
我已将正则表达式放在此处:http://regexpal.com/如果我删除了最终\ n,则会突出显示各行。
答案 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?