我有这段代码
reg=~r/(\d{4}.csv)/
raw="some craxy trashy text blabla 0044.csv"
Regex.scan(reg,raw, capture: :all_but_first)
返回0044.csv
。
但是,我需要从数据库加载~r/(\d{4}.csv)/
,因此我将其保存为
"~r/(\d{4}.csv)/"
这是一个字符串。当我将它加载到变量时,它将是一个字符串。
如何将其传递给Regex.scan
?
答案 0 :(得分:9)
您可以使用Regex.compile/2或Regex.compile!/2
iex> Regex.compile("(\\d{4}.csv)")
{:ok, ~r/(\d{4}.csv)/}
你需要一个额外的反斜杠来逃避,否则你最终会得到:
iex> Regex.compile("(\d{4}.csv)")
{:ok, ~r/(\x7F{4}.csv)/}