如何让Ruby的字符串分割方法在输出中包含换行符?

hwazgwia  于 2023-01-30  发布在  Ruby
关注(0)|答案(2)|浏览(165)

这里有个密码

thing = "Stuff.\nHello!"
result = thing.split(" ")
# ^Is equal to ["Stuff.", "Hello!"] despite the delimiter being a single space instead of a newline

我如何使它包含换行符,使结果变量等于[“Stuff.\n”,“Hello!"]?
我使用的是Ruby1.9.2,对于那些好奇的人来说,我需要知道这一点,因为它是一个用换行符替换换行符标记的自动换行算法。

5sxhfpxr

5sxhfpxr1#

您可以将regexp与肯定的look-behindAssert一起使用:

thing = "Stuff.\nHello!"
thing.split(/(?<=\s)/)
#=> ["Stuff.\n", "Hello!"]

肯定的look-behindAssert(?<=pat)确保前面的字符与pat匹配,但不将这些字符包括在匹配的文本中。

bpzcxfmw

bpzcxfmw2#

可以简单地使用String #lines。

"Stuff.\nHello!".lines    #=> ["Stuff.\n", "Hello!"]
"Stuff.\nHello!\n".lines  #=> ["Stuff.\n", "Hello!\n"]

相关问题