有没有一种方法可以将从文件加载的比特串按换行符分割?我有类似这样的东西:
A line of text
Additional line of text
And another line
我想要一个像这样的数组:
["A line of text",
"Additional line of text",
"And another line"]
是否有函数可以将文本按照换行符分割成类似于这样的数组?
提前致谢。
\n
为分隔符来拆分字符串,那么就会存在一些严重的可移植性问题。这是因为许多系统使用\n
,而一些旧版的 Mac 使用\r
,而 Windows 使用\r\n
来分隔新行。String.split(str, ~r{(\r\n|\r|\n)}
。|
字符之前。这是正确的版本:String.split("foo\r\nbar", ~r{\r\n|\r|\n})
。 - nietaki虽然Mark提到了可移植性问题,但是他提供的正则表达式中有一个错字,因此不能处理\r\n
序列。以下是一个更简单的版本,可以处理所有3种情况:
iex(13)> String.split("foo\nbar", ~r/\R/)
["foo", "bar"]
iex(14)> String.split("foo\rbar", ~r/\R/)
["foo", "bar"]
iex(15)> String.split("foo\r\nbar", ~r/\R/)
["foo", "bar"]
:binary.split/3
:iex(1)> "aaa\rbbb\nccc\r\nddd" |> :binary.split(["\r", "\n", "\r\n"], [:global])
["aaa", "bbb", "ccc", "ddd"]
\r\n
优先于首先通过 \r
进行拆分,然后再通过 \n
进行拆分。
re
,但这是过度杀伤力。 - rvirding