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

Tes*_*spy 1 ruby string ruby-1.9.2

这里有这段代码:

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

如何才能包含换行符,使结果 var 等于 ["Stuff.\n", "Hello!"] ?

我正在使用 Ruby 1.9.2。对于那些好奇的人,我需要知道这一点,因为自动换行算法用换行符替换换行符标签。

spi*_*ann 5

您可以使用带有正向后向断言的正则表达式

\n
thing = "Stuff.\\nHello!"\nthing.split(/(?<=\\s)/)\n#=> ["Stuff.\\n", "Hello!"]\n
Run Code Online (Sandbox Code Playgroud)\n

肯定的后向断言(?<=pat)可确保前面的字符匹配pat,但\xe2\x80\x99t 不会在匹配的文本中包含这些字符。

\n