gpt4 book ai didi

ruby - 在 Ruby 中规范化行结尾

转载 作者:数据小太阳 更新时间:2023-10-29 06:26:46 24 4
gpt4 key购买 nike

我在 Ruby 中有一个字符串,s(比方说)它可能有任何标准的行结尾(\n\r\n\r)。我想将所有这些转换为 \n。什么是最好的方法?

这似乎是一个非常常见的问题,但没有太多关于它的文档。显然有简单粗暴的解决方案,但是有没有内置的东西来处理这个问题?

优雅、惯用的 Ruby 解决方案是最好的。

编辑:意识到 ^M\r 是一样的。但仍然存在三种情况。 (参见 wikipedia。)

最佳答案

从 ruby​​ 1.9 开始你可以使用 String::encode使用 universal_newline: true 将所有新行放入 \n 中,同时保持编码不变:

s.encode(s.encoding, universal_newline: true)

一旦处于已知换行状态,您可以使用 :crlf_newline 自由转换回 CRLF。例如:将未知(可能混合)结尾的文件转换为 CRLF(例如),以二进制模式读取它,然后:

s.encode(s.encoding, universal_newline: true).encode(s.encoding, crlf_newline: true)

关于ruby - 在 Ruby 中规范化行结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1836046/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com