Elixir/Erlang在换行符上分割比特串?

Str*_*s3D 12 erlang newline export elixir bitstring

有没有办法在换行符上拆分从文件加载的位串?我有这样的事情:

A line of text
Additional line of text
And another line
Run Code Online (Sandbox Code Playgroud)

我想要一个像这样的数组:

["A line of text",
"Additional line of text",
"And another line"]
Run Code Online (Sandbox Code Playgroud)

是否有一个函数来分割换行符上的文本以产生类似这个数组的东西?

提前致谢.

cou*_*mar 17

除了罗伯茨的回答.

在Elixir中,您可以使用:String.split(string, "\n") 查看String模块.


rvi*_*ing 10

查看binary:split/2/3模块二进制文件.例如用binary:split(String, <<"\n">>).


Mar*_*bur 5

如果你只是简单地分割一个字符串\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})` (2认同)