0Pricing
Ruby Academy · レッスン

検索と置換

gsub、sub、match です。

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

部分文字列の検索

indexメソッドは最初に一致した位置を返し、見つからない場合はnilを返します。include?はtrueまたはfalseを返します。

text = "hello world"
puts text.index("world")
puts text.include?("world")

subで最初の一致を置換

subは、パターンに一致した最初の箇所だけを新しい値に置き換えます。

text = "cat cat cat"
puts text.sub("cat", "dog")

gsubですべての一致を置換

gsubはglobal substitution(グローバル置換)を意味します。一致した箇所をすべて置き換えます。

text = "cat cat cat"
puts text.gsub("cat", "dog")

正規表現を使う

/.../のようにスラッシュで囲んだパターンは正規表現です。/\d/は数字1文字に一致します。gsubとsubでは正規表現のパターンを使用できます。

text = "a1b2c3"
puts text.gsub(/\d/, "*")

match?で一致を確認

match?は、文字列内のどこかで正規表現に一致した場合にtrueを返します。確認処理を高速かつ簡潔に書けます。

email = "ada@ruby.org"
puts email.match?(/@/)
puts "no at sign".match?(/@/)

matchでキャプチャする

matchはMatchDataオブジェクトを返します。インデックス[0]は一致全体を表し、括弧でキャプチャグループを作成すると、[1]、[2]などで取得できます。

data = "2024-05-30"
m = data.match(/(\d+)-(\d+)-(\d+)/)
puts m[1]
puts m[2]

scanですべての一致を検索

scanは、文字列内のすべての一致を配列として返します。すべての数字や単語を取り出すのに適しています。

text = "phone 555 and 777"
puts text.scan(/\d+/).inspect

アンカー

アンカーを使うと、一致する位置を固定できます。^は行頭、$は行末を表します。\Aと\zは文字列全体の先頭と末尾に固定します。

puts "hello".match?(/^hel/)
puts "hello".match?(/llo$/)
puts "hello".match?(/^world/)

文字クラス

角括弧で許可する文字の集合を定義します。[aeiou]は任意の母音に一致します。[a-z]は任意の小文字に一致します。

text = "Ruby"
puts text.gsub(/[aeiou]/i, "_")

gsubのブロック

gsubにブロックを渡すと、一致する箇所をそれぞれ動的に変換できます。一致したテキストがブロック引数になります。

text = "one two"
result = text.gsub(/\w+/) { |w| w.upcase }
puts result

大文字と小文字を区別しない検索

正規表現の後ろにiフラグを付けると、大文字と小文字を区別しなくなります。

text = "Hello HELLO hello"
puts text.gsub(/hello/i, "hi")

理解度チェック

検索と置換のスキルを確認します。

まとめ

これで、テキストを検索して置換できるようになりました。

  • 検索にはindex、include?、match?
  • 置換にはsub(最初の一致)とgsub(すべての一致)
  • 正規表現のパターン、アンカー、文字クラス
  • すべての一致を取り出すscanと、動的な置換に使うブロック

次は、文字列の分割と結合です。

puts "a,b,c".gsub(",", " | ")

よくある質問

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

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

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

gsub、sub、match です。 ブラウザで直接実行するハンズオンコードで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に戻る