建议更换Elixir中的is_regex调用

建议更换Elixir中的is_regex调用,elixir,Elixir,有人能帮我换一个长生不老药的防护罩吗 def contains(collection,element) do r = case collection do c when is_tuple(c) -> element in tuple_to_list(c) c when is_list(c) -> element in c c when is_regex(element) -> Regex.ma

有人能帮我换一个长生不老药的防护罩吗

def contains(collection,element) do
r = case collection do
      c when is_tuple(c)           -> element in tuple_to_list(c)
      c when is_list(c)            -> element in c
      c when is_regex(element)     -> Regex.match?(element, c)
      c when is_bitstring(element) -> String.contains?(c, element)
    end

if (not r), do: Message.fail(collection, element, __ENV__.function)
end

谢谢

您可以在它的位置使用
Regex.Regex?(元素)

但是
Regex.Regex?
不能用作保护条件,对吗?这就是我的问题。正确,Erlang(因此Elixir)只允许在guards中进行有限的调用:在即将推出的Elixir版本中,您将能够在
%Regex{}
上进行匹配。但是现在由于我们处于记录和结构之间,我们需要依赖这些函数。