我想删除所有换行符号:
aaa = """
fdsfds fdsfds
fdsfdsfds
fdsfdsfds
""" |> String.strip("\r\n")
Run Code Online (Sandbox Code Playgroud)
我得到:
argument error
Run Code Online (Sandbox Code Playgroud)
这有什么问题?
Dog*_*ert 10
这有什么问题?
String.strip仅支持删除一个字符.Elixir尝试转换"\r\n"为单个字符(源)时抛出该错误:
iex(1)> s = "\r\n"
"\r\n"
iex(2)> <<s::utf8>>
** (ArgumentError) argument error
Run Code Online (Sandbox Code Playgroud)
此外,String.strip已被弃用,取而代之的String.trim,它不支持的字符串作为第二个参数,但该功能只会移除的确切顺序\r\n从字符串的开始和结束:
iex(1)> aaa = """
...(1)> fdsfds fdsfds
...(1)> fdsfdsfds
...(1)> fdsfdsfds
...(1)> """
"fdsfds fdsfds\n fdsfdsfds\nfdsfdsfds\n"
iex(2)> String.trim(aaa, "\r\n")
"fdsfds fdsfds\n fdsfdsfds\nfdsfdsfds\n"
iex(3)> String.trim(aaa, "\r\n") == aaa
true
Run Code Online (Sandbox Code Playgroud)
当我说"我想删除所有新行的符号"时,我怀疑你想要的是什么.要删除所有\r和\n,您可以使用String.replace两次:
iex(4)> aaa |> String.replace("\r", "") |> String.replace("\n", "")
"fdsfds fdsfds fdsfdsfdsfdsfdsfds"
Run Code Online (Sandbox Code Playgroud)