Notepad++ 删除新行模式-查找和替换命令?

Notepad++ 删除新行模式-查找和替换命令?

我想删除聊天日志文件中每个名字后面的新行。示例:

Person1:[space]
their message
Person2:[space]
their message

因此我在“查找和替换”中将其设置为扩展搜索,然后搜索字符串:

: \r

并将其设置为替换为:

:[space]

它找到了我要查找的实例,但出于某种原因,当我替换时,它不会将文本从新行移回 - 并且它说它已成功替换。我尝试从替换文本中删除空格,它删除了空格,但仍然没有将文本移回一行。

有什么建议么?

答案1

查找: \r\n并替换为:[space]

您需要找到回车符(CR)和换行符(LF)。

答案2

  • Ctrl+H
  • 找什么::\h+\R
  • 替换为:(: 分号后跟一个空格)
  • 检查环绕
  • 检查正则表达式
  • Replace all

解释:

:       : a semicolon
\h+     : 1 or more horizontal spaces
\R      : any kind of linebreak (ie. \n, \r or \r\n)

给定示例的结果:

Person1: their message
Person2: their message    

答案3

正如另一个答案中提到的,您需要更改\r为。这是因为 Windows 使用回车符(在 Notepad++ 或 中)和换行符(在 Notepad++ 或 中)\r\n的组合来表示新行。CR\rLF\n

关于您的问题,Notepad++ 按字面意思处理替换\r(因此最终替换实际上是[space] \n)。而且由于其他操作系统使用单个\n(Linux)或\r(如果我没记错的话,这是 MacOS 默认设置)作为“换行符”,因此 Notepad++ 也会这样处理它们(即,将它们表示为换行符,因此不会出现“碰撞”)。

笔记

  • 如果你需要查看格式化字符(制表符、空格、行尾),你可以使用视图 > 显示符号去看他们。

  • 更换时请确保有ExtendedRegular expression标记。Search Mode

相关内容