LoginSignup
2
1

この記事は、Elixir Advent Calendar 2023 シリーズ14 の10日目です


piacere です、ご覧いただいてありがとございます :bow:

Elixirは、データ加工が得意な言語ですが、文字列操作も独特の便利さがあり、今回は多彩な文字列抽出を紹介します

開始と終了の指定

iex> "私はElixirが大好きです" |> String.slice(2, 6)
"Elixir"

開始をマイナスで指定すると後ろからカウント

iex> "私はElixirが大好きです" |> String.slice(-5, 3)
"大好き"

レンジで指定

iex> "私はElixirが大好きです" |> String.slice(2..7)
"Elixir"

レンジの開始と終了をマイナスで指定すると後ろからカウント

iex> "私はElixirが大好きです" |> String.slice(-5..-3)
"大好き"

レンジで飛び飛びの指定

iex>  "私はElixirが大好きです" |> String.slice(2..10//2)
"Eiiが好"

レンジの終了をマイナスで指定すると終わりを後ろからカウント

"私はElixirが大好きです" |> String.slice(2..-3//1)
"Elixirが大好き"

文字単位で無くバイト単位

UTF-8は1文字3バイト換算です

iex> "私はElixirが大好きです" |> binary_part(6, 5)
"Elixi"

iex> "私はElixirが大好きです" |> binary_slice(7, 5)
"lixir"

iex> "私はElixirが大好きです" |> binary_slice(7..9)
"lix"
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1