我有这个代码
reg=~r/(\d{4}.csv)/
raw="some craxy trashy text blabla 0044.csv"
Regex.scan(reg,raw, capture: :all_but_first)
Run Code Online (Sandbox Code Playgroud)
这回来了0044.csv.
但是,我需要~r/(\d{4}.csv)/ 从数据库加载,所以我将其保存为
"~r/(\d{4}.csv)/"
Run Code Online (Sandbox Code Playgroud)
这是一个字符串.当我将它加载到变量时,它将是一个字符串.
我怎么能把它传递给Regex.scan?
Gaz*_*ler 10
您可以使用Regex.compile/2或Regex.compile!/2
iex> Regex.compile("(\\d{4}.csv)")
{:ok, ~r/(\d{4}.csv)/}
Run Code Online (Sandbox Code Playgroud)
你需要一个额外的反斜杠来逃避,否则你最终会得到:
iex> Regex.compile("(\d{4}.csv)")
{:ok, ~r/(\x7F{4}.csv)/}
Run Code Online (Sandbox Code Playgroud)