在 Notepad++ 中删除多个文件中具有特定单词的行

Deleting lines with specific words in multiple files in Notepad++

我正在尝试从使用 Notepad++ 处理的许多文件中删除特定行。

经过搜索,我找到了 Notepad++ Remove line with specific word in multiple files within a directory but somehow the regex provided (^.*(?:YOURSTRINGHERE).*\r\n$) from the answers doesn't work for me (screenshot: https://cdn.discordapp.com/attachments/311547963883388938/407737068475908096/unknown.png).

我在其他 questions/answers 上读到某些正则表达式在 newer/older Notepad++ 版本中不起作用。我使用的是 Notepad++ 5.x.x 然后更新到最新的 7.5.4,但都没有使用上面问题中提供的正则表达式。

目前,我可以通过将该行替换为任何内容来解决它,两次(因为我只需要从这些文件中删除 2 个变体),但在文件末尾留下一个空行。所以我必须进一步删除该空行。

我希望有人可以提供帮助,让我删除该行并且不留空 line/space。

您尝试使用的正则表达式将只匹配您的行,前提是它后跟一个空行并且使用了 Windows 换行符 (CR LF)。这是由于 \r\n$ 匹配换行符序列后跟行尾。

相反,您可能想使用

^.*(?:YOURSTRINGHERE).*\R?

匹配包含您的字符串的行和可选的后续换行符序列以删除该行而不是将其清空。如果您的单词包含在文件的最后一行中,这将为您留下尾随换行符。您可以使用

(\R)?.*(?:YOURSTRINGHERE).*(?(1)|\R)

为了避免这种情况。它使用条件来匹配前面的换行符,或者如果有 none.

则匹配下面的换行符