我想删除聊天日志文件中每个名字后面的新行。示例:
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
\r
LF
\n
关于您的问题,Notepad++ 按字面意思处理替换\r
(因此最终替换实际上是[space] \n
)。而且由于其他操作系统使用单个\n
(Linux)或\r
(如果我没记错的话,这是 MacOS 默认设置)作为“换行符”,因此 Notepad++ 也会这样处理它们(即,将它们表示为换行符,因此不会出现“碰撞”)。
笔记
如果你需要查看格式化字符(制表符、空格、行尾),你可以使用视图 > 显示符号去看他们。
更换时请确保有
Extended
或Regular expression
标记。Search Mode