我正在寻找一些正则表达式的帮助.
我有一个文本文件,没有什么超级重要,但我想删除它的每一行 - 我尝试按照本指南:删除记事本中的每隔一行++
但是,我无法让它工作,我正在使用正则表达式吗?我是正则表达式的noob
找:
([^\n]*\n)[^\n]*\n
Run Code Online (Sandbox Code Playgroud)
用...来代替:
$1
Run Code Online (Sandbox Code Playgroud)
无论我尝试什么(开头的鼠标位置,ctrl + a和全部替换)我都无法让它工作.我感谢任何帮助.
我把正则表达式放在这里:http://regexpal.com/如果我删除了最终\n它会突出显示各行.
确保为搜索模式选择正则表达式 ...
此外,您可能希望将最终换行设置为可选.如果行数为偶数且您没有尾随换行符,则不会删除最后一行.
([^\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)