Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

Ruby辞典

  1. トップページ
  2. Ruby辞典
  3. 文字列.slice / []

文字列.slice / []

文字列の一部を切り出すメソッドです。『slice』と『[]』(ブラケット記法)はどちらも同じ動作をします。

構文
# インデックスと長さを指定して切り出します。
文字列.slice(開始インデックス, 長さ)
文字列[開始インデックス, 長さ]

# 範囲オブジェクトで切り出します。
文字列[開始..終了]
文字列[開始...終了]  # 終端を含まない

# 部分文字列を指定して切り出します。
文字列[検索文字列]
メソッド一覧
記法概要
str[n]インデックス n の文字を返します。負の値を指定すると末尾からの位置になります。
str[n, len]インデックス n から len 文字分を切り出して返します。
str[n..m]インデックス n から m までの範囲を切り出します(m を含む)。
str[n...m]インデックス n から m の直前までを切り出します(m を含まない)。
str[substr]文字列に一致する部分を返します。見つからない場合は『nil』を返します。
サンプルコード
テキスト = "Hello, Ruby!"

# インデックスと長さで切り出します。
puts テキスト[0, 5]    # Hello
puts テキスト[7, 4]    # Ruby

# 範囲で切り出します。
puts テキスト[0..4]    # Hello
puts テキスト[0...5]   # Hello(終端を含まない)

# 負のインデックスで末尾から指定します。
puts テキスト[-5, 4]   # Ruby
puts テキスト[-1]      # !(最後の1文字)

# 日本語でも同様に使えます。
挨拶 = "おはようございます"
puts 挨拶[0, 3]        # おはよ
puts 挨拶[3..]         # うございます(Ruby 2.6以降の無限範囲)

# 部分文字列を指定します。
puts テキスト["Ruby"]  # Ruby
puts テキスト["Java"].inspect  # nil

# 日付文字列から年月日を取得します。
日付 = "2024-03-15"
puts 日付[0, 4]   # 2024(年)
puts 日付[5, 2]   # 03(月)
puts 日付[8, 2]   # 15(日)
概要

Rubyの文字列切り出しは『[]』記法が一般的によく使われます。『slice』はメソッド形式で同じ操作ができます。インデックスの範囲外を指定した場合は『nil』が返ることがあるため、動的なインデックスを使う場合は戻り値の確認を忘れないようにしてください。

Ruby 2.6以降では『str[n..]』という無限範囲が使えます。これはn文字目以降をすべて取得する場合に便利です。また、正規表現を引数に指定することもできます(例: 『str[/\d+/]』)。

文字列を分割して配列にするには『split』を、文字列の長さを取得するには『length / size』を使用してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。