我知道如何通过常规的String操作来做到这一点,但是我很好奇是否可以一步完成。
假设我有accounts/123123/order/234234234。它是从外部来源获得的,因此尽管我知道accounts/并且/order总是固定的长度/值,但数字可能并不总是固定的长度。有什么办法可以在这里进行二进制模式匹配吗?还是比一些String操作更好的方法?
如果可以一步匹配
我们只有在知道所有剩余部分的大小后才能进行模式匹配。据我所知,这不能作为一种模式匹配来完成。
有什么比一些String操作更好的方法吗?
那只有一个String操作呢?
iex> tag = "accounts/123123/order/234234234"
iex> ["accounts", account, "order", order] = String.split(tag, "/")
iex> account
"123123"
iex> order
"234234234"
Run Code Online (Sandbox Code Playgroud)
正则表达式也是一个不错的选择
iex> tag = "accounts/123123/order/234234234"
iex> regex = ~R{^accounts/(?<account>\d+)/order/(?<order>\d+)$}
iex> Regex.named_captures(regex, tag)
%{"account" => "123123", "order" => "234234234"}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |