Вы можете сделать это с помощью регулярного выражения, экранируя символы |
и используя include_captures: true
:
iex(1)> String.split("aa||bb", ~r{\|\|}, include_captures: true)
["aa", "||", "bb"]
Преимущество использования Elixir состоит в том, что он делает ненужными регулярные выражения во многих ситуациях. ,Например, вы можете сделать то же самое здесь, используя двоичные файлы и понимания, предполагая, что длина aa
и bb
всегда равна 2:
iex(2)> for <<i::binary-2 <- "aa||bb">>, do: i
["aa", "||", "bb"]