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