如何匹配字符串中的前n个字符?就像是:
def take(n) do
head :: size(n) <> rest = "my string"
end
Run Code Online (Sandbox Code Playgroud)
Dog*_*ert 10
您可以使用模式匹配获取第一个n 字节:
iex(1)> n = 4
4
iex(2)> <<head :: binary-size(n)>> <> rest = "my string"
"my string"
iex(3)> head
"my s"
iex(4)> rest
"tring"
Run Code Online (Sandbox Code Playgroud)
您无法n使用单个模式获取第一个UTF-8代码点,因为UTF-8字符可以占用可变数量的字节,而Elixir中的模式匹配不支持该字符.您可以::utf8在模式中使用第一个(或固定数量的)UTF-8代码点:
iex(1)> <<cp::utf8>> <> rest = "ƒoo"
"ƒoo"
iex(2)> cp
402
iex(3)> <<cp::utf8>>
"ƒ"
iex(4)> rest
"oo"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1228 次 |
| 最近记录: |