如何在 Notepad++ 中退格换行符

如何在 Notepad++ 中退格换行符

我有一个以下格式的文件

dhdh
|jgfgf
hhgfh

我想|在新行中找到(管道)符号并将其替换为退格键

为了找到这个,我的正则表达式如下

^[|]{1}[a-zA-Z]

它运行完美,但我无法用上一行末尾的退格键替换它,如下所示。

dhdh|jgfgf
hhgfh

第二种情况仅适用于文本

^[a-zA-Z]

为此,期望的结果是

dhdh|jgfgfhhgfh

请告诉我该怎么做?

答案1

您可以通过删除(非打印)字符(通常是 CRLF(回车符 + 换行符)来查找/替换换行符,具体取决于创建文件内容的操作系统/程序。如果您打开“显示所有字符”,Notepad++ 将显示非打印字符。要在 notepad++ 中找到它,您可以使用\r\n(使用扩展搜索模式或正则表达式)。

场景 1a您应该替换/删除所有换行符,后跟竖线 ( \r\n|):

  • 寻找:\r\n|
  • 替换为:( 留空)

这将改变以下文本:

dhdh
|jgfgf
hhgfh

至此文本:

dhdhjgfgf
hhgfh

场景 1b\r\n|您应该将所有以竖线 ( )结尾的换行符替换为竖线 ( |):

  • 寻找:\r\n|
  • 用。。。来代替:|

这将改变以下文本:

dhdh
|jgfgf
hhgfh

至此文本:

dhdh|jgfgf
hhgfh

场景 2a(从您的问题来看)您应该替换/删除所有换行符(\r\n):

  • 寻找:\r\n
  • 替换为:( 一个空格字符)

这将改变以下文本:

dhdh
|jgfgf
hhgfh

至此文本:

dhdh| jgfgf hhgfh

场景 2b(从您的评论中)您应该替换/删除所有换行符(\r\n):

  • 寻找:\r\n
  • 替换为:( 留空)

这将改变以下文本:

dhdh
|jgfgf
hhgfh

至此文本:

dhdh|jgfgfhhgfh

笔记:

使用 RegEx 代替“扩展搜索”,您可以使用\R(注意大写)代替\r\n(查看完整RegEx 指南), 谢谢托托指出这一点!

答案2

  • Ctrl+H
  • 找什么:\R(?=\|)
  • 用。。。来代替:LEAVE EMPTY
  • 查看 环绕
  • 选择 正则表达式
  • Replace all

解释:

\R          # any kind of linebreak (i.e. \r, \n, \r\n)
(?=\|)      # positive lookahead, make sure we have a pipe after

截图(之前):

在此处输入图片描述

截图(之后):

在此处输入图片描述

相关内容