【问题标题】:Notepad++ regex -> newLineNotepad++ 正则表达式 -> 新行
【发布时间】:2013-03-04 13:32:03
【问题描述】:

我使用 Notepad++,我需要删除所有以“abc”开头的行。

注意,我不需要用空行替换以“abc”开头的行,但我需要将这些行完全删除。

我该如何进行(我想是使用正则表达式)?

【问题讨论】:

标签: regex notepad++


【解决方案1】:

尝试替换

^abc.*(\r?\n)?

nothing

^ 表示一行的开始。

. 表示通配符。

.* 表示零个或多个通配符。

x? 表示x 是可选的。

\r?\n 涵盖 \r\n(通常是 Windows)和 \n(通常是 Unix),但必须是可选的以涵盖最后一行。

【讨论】:

  • 是的。而 > for "abc..."
  • 当文件末尾没有新行时,不适用于文件的最后一行。
【解决方案2】:

搜索这个正则表达式

^abc.*\r\n

什么都没有。

【讨论】:

  • 当文件末尾没有新行时,不适用于文件的最后一行。
【解决方案3】:

在 Notepad++ 中搜索更多关于正则表达式的内容,我发现换行符不是 \n,正如我所期望的 (Windows),而是 \n\r

所以,我的正则表达式替换表达式应该是:
查找: abc.*\r\n
替换为:(无,空字段)

【讨论】:

  • 这也会匹配中间有 abc 的行。
【解决方案4】:

在“查找和替换”->“替换”中尝试正则表达式 \nabc.*
将“替换为”字段留空。

编辑:这不适用于 first like(因为 '\n' 表示“新行”)

【讨论】:

    【解决方案5】:

    Ctrl+H 调出Replace 窗口。放

    ^abc.*(\r?\n)?
    

    Find what 中并将Replace with 留空。选择Reqular expression 并点击Replace All

    这个正则表达式处理所有的边缘情况:

    • 当文件第一行以abc开头时
    • 当文件的最后一行以abc 开头并且文件末尾没有新行时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-26
      • 2012-04-01
      • 2017-02-08
      • 1970-01-01
      • 2023-02-04
      • 1970-01-01
      相关资源
      最近更新 更多