0Pricing
Ruby Academy · レッスン

置換

パターンを使った gsub です。

「置換」はCoddyKit上の無料Ruby Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはRuby Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ruby Academyコースには全4レッスンが含まれています。

subでテキストを置換する

String#subは、パターンに最初にマッチした部分を置換文字列に置き換えます。元の文字列は変更されず、新しい文字列が返されます。

s = 'hello world'
puts(s.sub(/world/, 'Ruby'))
puts s

gsubですべて置換する

gsubはグローバル置換を意味します。最初の1件だけでなく、すべてのマッチを置き換えます。

puts('a-b-c-d'.gsub(/-/, '_'))
puts('one two two'.gsub(/two/, 'three'))

置換でパターンを使う

gsubの最初の引数には完全な正規表現を指定できます。これにより、固定されたテキストではなく柔軟なパターンにマッチさせられます。

puts('id42 id7 id100'.gsub(/\d+/, '#'))
puts('a1b2c3'.gsub(/[0-9]/, '*'))

置換時の後方参照

置換文字列では、\1、\2などを使ってキャプチャグループを参照できます。

puts('2026-05-30'.gsub(/(\d{4})-(\d{2})-(\d{2})/, '\3/\2/\1'))

マッチ全体への後方参照

\0または\&はマッチしたテキスト全体を参照します。マッチした部分を囲む場合などに便利です。

puts('cat dog'.gsub(/\w+/, '[\0]'))

gsubのブロック形式

gsubにはブロックを渡せます。各マッチがブロックに渡され、ブロックの戻り値が置換後の文字列になります。これにより、置換内容を動的に計算できます。

result = 'a1 b2 c3'.gsub(/\d/) { |d| (d.to_i * 10).to_s }
puts result

マッチした部分を大文字にする

ブロック形式を使うと、変換を簡単に行えます。ここでは各単語の先頭を大文字にします。

title = 'the great escape'.gsub(/\w+/) { |w| w.capitalize }
puts title

Hashによる置換

第2引数にHashを渡すと、各マッチをキーとして検索し、その値に置き換えます。翻訳用のマップに便利です。

map = { 'cat' => 'kedi', 'dog' => 'kopek' }
puts('cat and dog'.gsub(/cat|dog/, map))

破壊的な形式

sub!とgsub!は文字列をその場で変更し、変更がなかった場合はnilを返します。

s = 'hello'
s.gsub!(/l/, 'L')
puts s
puts(s.gsub!(/z/, 'x').inspect)

テキストを削除する

マッチした部分を削除するには、空文字列に置き換えます。

puts('h e l l o'.gsub(/\s/, ''))
puts('price: $42'.gsub(/[^0-9]/, ''))

名前付きグループへの後方参照

(?<name>...)を使ってグループに名前を付け、置換時には\k<name>で参照できます。

out = 'John Smith'.gsub(/(?<first>\w+) (?<last>\w+)/, '\k<last>, \k<first>')
puts out

簡単な確認

subとgsubの違いは何ですか。

まとめ:置換

パターンを使って文字列を変換する方法を学びました。

  • subは最初のマッチ、gsubはすべてのマッチを置換する
  • 置換では\1や\&で後方参照できる
  • ブロック形式では置換内容を動的に計算できる
  • Hash引数でマッチを値に対応付けられる
  • sub! / gsub!は文字列をその場で変更する
puts('foo bar baz'.gsub(/b\w+/) { |w| w.upcase })

よくある質問

「置換」レッスンは無料ですか?

はい。「置換」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ruby Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ruby Academyコースには全4レッスンが含まれています。

「置換」で何を学びますか?

パターンを使った gsub です。 ブラウザで直接実行するハンズオンコードでRuby Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Ruby Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのRuby Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「置換」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このRuby Academyレッスンでコードを書いて実行できますか?

はい。すべてのRuby Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 正規表現リテラル
  2. マッチングとキャプチャ
  3. 置換
  4. 名前付きグループとアンカー
← Ruby Academyに戻る