You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Ruby的String Split方法在输出中保留换行符?

Ruby 1.9.2 保留换行符的字符串分割问题

现有如下代码:

thing = "Stuff.\nHello!"
result = thing.split(" ")
# ^结果为["Stuff.", "Hello!"],尽管分隔符是单个空格而非换行符

如何修改才能让换行符被保留,使result变量等于["Stuff.\n", "Hello!"]?我使用的是Ruby 1.9.2,此需求用于将换行标签替换为换行符的自动换行算法。


解决方法

Ruby里split(" ")是特殊处理的——它会把所有空白字符(包括换行、空格、制表符等)都当作分隔符,所以才会把换行也一并去掉。要只按字面意义的单个空格分割,同时保留换行符,换用正则表达式匹配单个空格即可:

thing = "Stuff.\nHello!"
result = thing.split(/ /)
# 此时 result 就是 ["Stuff.\n", "Hello!"]

原理很简单:带双引号的空格参数会触发Ruby的“任意空白分割”逻辑,而正则表达式/ /只会匹配字面意义上的单个空格,不会把换行符当作分隔符,这样就能保留原字符串里的换行符了。

如果你的场景中存在连续空格,还可以通过split的第二个参数控制分割次数,不过针对当前需求,上面的方法就完全够用。


内容的提问来源于stack exchange,提问作者Tespy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 19:15:27