regex - Elixir 案例中的正则表达式

标签 regex elixir

你能在 case 中使用正则表达式吗?在 Elixir ?

所以类似这样的事情:

case some_string do
  "string"        -> # do something
  ~r/string[\d]+/ -> # do something
  _               -> # do something
end

最佳答案

case这是不可能的,但您可以使用 cond :

cond do
  some_string == "string"                     -> # do something
  String.match?(some_string, ~r/string[\d]+/) -> # do something
  true                                        -> # do something
end

原因是无法通过为特定值调用特殊函数来 Hook 模式匹配。我猜你从 Ruby 那里得到了这个想法,它通过定义特殊运算符 === 来实现这一点。 .这将被 Ruby 的 case 语句隐式调用,对于正则表达式,它将匹配给定的值。

关于regex - Elixir 案例中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34649321/

相关文章:

elixir - 在十六进制包中包含 ecto 迁移或生成器

oauth-2.0 - Google Calendar API 在 OAuth 期间出现 403 错误,即使它似乎授予访问权限

java - 在一个整数后跟一个空格拆分一个字符串

Java递归(?)重复(?)深度(?)模式匹配

java - 如何使用前面没有字符的分隔符拆分字符串?

PHP 使用正则表达式验证 CRON

CSS双类属性的Java正则表达式匹配

Elixir的并行映射算法

heroku - Phoenix 框架的 Heroku 和 Mailgun 问题的环境变量

elixir - 如何使用 Ecto 对模型删除设置 foreign_key_constraint?