elixir符号中的转义闭括号
我想有一个自定义标志,这样我可以有一个元素每行 这是我的密码elixir符号中的转义闭括号,elixir,sigils,Elixir,Sigils,我想有一个自定义标志,这样我可以有一个元素每行 这是我的密码 def sigil_l(text,[]), do: String.split(text,"\n") 这对我来说很好 ~l(Clash of Titans The day after Tomorrow The Transporter ) 这对我来说是失败的 ~l(The man from Earth (2007) Gone Girl (2014) ) 注意上面的括号 这是错误消息 "{" starting
def sigil_l(text,[]), do: String.split(text,"\n")
这对我来说很好
~l(Clash of Titans
The day after Tomorrow
The Transporter
)
这对我来说是失败的
~l(The man from Earth (2007)
Gone Girl (2014)
)
注意上面的括号
这是错误消息
"{" starting at line 38 is missing terminator "}". Unexpected token: )
(elixir) lib/kernel/parallel_compiler.ex:97: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
预期的结果是
["The man from Earth (2007)",
"Gone Girl (2014)"]
需要更改哪些代码。
我是否也需要在输入中添加任何字符并在sigil定义中处理
更新
@AbM给出的解决方案是正确的。
我使用的是elixir 1.0.4版,所以它不起作用。它确实在1.1.x上工作
解决方案
~l(The man from Earth (2007\)
Gone Girl (2014\)
)
应使用
\)
转义右括号:
以下是我的脚本和iex输出:
defmodule SigilL do
def sigil_l(text,[]), do: String.split(text,"\n")
end
您应该用
\)将右括号转义。
:
以下是我的脚本和iex输出:
defmodule SigilL do
def sigil_l(text,[]), do: String.split(text,"\n")
end
符号也有多种分隔符。 因此,不是:
~s(My funky "string(\)")
您还可以使用:
~s|My funky "string()"|
这样可以避免使用正斜杠。
显然,这意味着您必须为以下内容找到另一个分隔符:
~s|My funky "string(|)"|
但至少有一个解决方案。
符号也有多种分隔符。 因此,不是:
~s(My funky "string(\)")
您还可以使用:
~s|My funky "string()"|
这样可以避免使用正斜杠。
显然,这意味着您必须为以下内容找到另一个分隔符:
~s|My funky "string(|)"|
但至少有一个解决方案。
否,这是带有建议更改的输出。“来自地球的男人(2007\)逝去的女孩(2014\)”为我工作。添加了
iex
输出我做错了什么iex(1)>defmodule Foo do`(1)>def sigil_l(text,[]),do:String.split(text,“\n”)…(1)>end{:module,Foo,{:sigil_l,2}iex(2)>import Foo nil iex(3)>~l(来自地球的男人(2007)…(3)>逝去的女孩(2014)>)[“来自地球的男人(2007\),“逝去的女孩(2014\),”iex(4)>你是对的。它对我不起作用,因为我有elixir版本1.0.4。升级到Elixir 1.1.1,它可以正常工作。感谢您发布完整的shell图片,它提供了升级版本的线索。不,这是带有建议更改的输出。“来自地球的男人(2007\)逝去的女孩(2014\)”为我工作。添加了iex
输出我做错了什么iex(1)>defmodule Foo do`(1)>def sigil_l(text,[]),do:String.split(text,“\n”)…(1)>end{:module,Foo,{:sigil_l,2}iex(2)>import Foo nil iex(3)>~l(来自地球的男人(2007)…(3)>逝去的女孩(2014)>)[“来自地球的男人(2007\),“逝去的女孩(2014\),”iex(4)>你是对的。它对我不起作用,因为我有elixir版本1.0.4。升级到Elixir 1.1.1,它可以正常工作。感谢您发布完整的shell图片,它提供了升级版本的线索。您应该更改您的问题。您试图避开一个括号而不是括号。@OnorioCatenacci感谢您的建议。更改了问题标题。您应该更改您的问题。您试图避开一个括号而不是括号。@OnorioCatenacci感谢您的建议。更改了问题标题。