我试图从我使用Notepad ++处理的许多文件中删除特定行。
在搜索时,我找到了Notepad++ Remove line with specific word in multiple files within a directory,但不知何故,从答案中提供的正则表达式(^.*(?:YOURSTRINGHERE).*\r\n$
)对我来说并不起作用(截图:https://cdn.discordapp.com/attachments/311547963883388938/407737068475908096/unknown.png)。
我读了一些其他问题/答案,某些正则表达式在较新/较旧的Notepad ++版本中不起作用。我使用Notepad ++ 5.x.x然后更新到最新的7.5.4,但都没有使用上面问题中提供的正则表达式。
目前我可以解决这个问题,只用两次替换该行,两次(因为我只需要从这些文件中删除2个变体),但在文件末尾留下一个空行。所以我必须再做一步去除那条空行。
我希望有人可以提供帮助,让我删除该行并且不会留下任何空行/空格。
答案 0 :(得分:2)
您尝试使用的正则表达式仅匹配您的行,如果后面跟一个空行并且使用了Windows换行符(CR LF)。这是因为\r\n$
与换行序列匹配,后跟行尾。
相反,您可能想要使用
^.*(?:YOURSTRINGHERE).*\R?
匹配包含字符串的行和可选的后续换行符序列以删除行而不是将其清空。如果您的单词包含在文件的最后一行,这将为您留下一个尾随换行符。你可以使用
(\R)?.*(?:YOURSTRINGHERE).*(?(1)|\R)
要避免这种情况。它使用条件来匹配上一个换行符,如果没有,则使用以下换行符。