Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】Regexp::~()メソッドの使い方

~メソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

~ メソッドは、正規表現オブジェクトが、Rubyの特殊なグローバル変数である $_ に格納されている文字列に対して正規表現マッチングを実行するメソッドです。

このメソッドは、Regexp クラスのインスタンスに対して使用され、対象となる文字列は明示的に指定するのではなく、Rubyが内部的に管理する $_ 変数の内容が利用されます。$_ 変数には、通常、gets メソッドなどによってファイルから読み込まれた最後の行の文字列が自動的に代入されます。

マッチングに成功した場合、このメソッドは、正規表現が文字列中でマッチした部分の開始インデックス(位置)を整数で返します。文字列の先頭はインデックス0です。もし正規表現が文字列にマッチしなかった場合は、nil を返します。

~ メソッドは、特にPerlのようなスタイルで、ファイルの各行を順に処理するような場合に簡潔な記述を可能にします。しかし、$_ 変数の内容が暗黙的に使われるため、どの文字列に対してマッチングが行われているのかがコード上で分かりにくくなることがあります。

そのため、現在では、より明示的に対象文字列を指定できる String クラスの =~ 演算子や、Regexp クラスの match メソッドを使用することが推奨されています。これらのメソッドは、可読性を高め、予期せぬ挙動を防ぐのに役立ちます。~ メソッドはRuby言語の基礎的な機能の一つとして存在し、その挙動を理解しておくことは重要です。

構文(syntax)

1$_ = "これはテスト文字列です"
2/テスト/~

引数(parameters)

引数なし

引数はありません

戻り値(return)

Integer | nil

正規表現オブジェクトが指定された文字列にマッチした場合、マッチした部分文字列の開始位置を整数で返します。マッチしなかった場合はnilを返します。

関連コンテンツ