【问题标题】:Deleting lines with specific words in multiple files in Notepad++在记事本++中删除多个文件中带有特定单词的行
【发布时间】:2018-07-08 20:52:21
【问题描述】:

我正在尝试从我正在使用 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 个变体),但这会在文件末尾留下一个空行。所以我必须再进一步删除那个空行。

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

【问题讨论】:

    标签: regex notepad++ editor


    【解决方案1】:

    您尝试使用的正则表达式只会匹配您的行,如果它后面跟着一个空行并且使用了 Windows 换行符 (CR LF)。这是因为 \r\n$ 匹配换行序列,然后是行尾。

    相反,您可能想要使用

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

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

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

    为了避免这种情况。它使用条件来匹配前一个换行符,如果没有,则使用以下换行符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多