小编bra*_*urn的帖子

当字符串保存到文件时,为什么\ r \n被转换为\n?

该字符串源自以下内容的返回值:

> msg = imap.uid_fetch(uid, ["RFC822"])[0].attr["RFC822"]
Run Code Online (Sandbox Code Playgroud)

在控制台中,如果我键入msg,则会显示一个带有双引号的长字符串,并且\ r \n分隔每行:

> msg
"Delivered-To: email@test.com\r\nReceived: by xx.xx.xx.xx with SMTP id;\r\n"
Run Code Online (Sandbox Code Playgroud)

如果我将其中一部分与正则表达式匹配,则返回值为\ r \n:

> msg[/Delivered-To:.*?\s+Received:/i]
=> "Delivered-To: email@test.com\r\nReceived:"
Run Code Online (Sandbox Code Playgroud)

如果我将字符串保存到文件中,请将其读回并与相同的正则表达式匹配,我得到\n而不是\ r \n:

> File.write('test.txt', msg)
> str = File.read('test.txt')
> str[/Delivered-To:.*?\s+Received:/i]
=> "Delivered-To: email@test.com\nReceived:"
Run Code Online (Sandbox Code Playgroud)

当字符串保存到文件时,\ r \n是否转换为\n?有没有办法将字符串保存到文件中,在没有修改行结尾的情况下将其读回?

ruby regex newline

3
推荐指数
1
解决办法
341
查看次数

标签 统计

newline ×1

regex ×1

ruby ×1