置換
パターンを使った 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 sgsubですべて置換する
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 titleHashによる置換
第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フィードバックを取得できます。ローカル設定は不要です。