【Ruby3.x】Symbol::match()メソッドの使い方
matchメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
matchメソッドは、RubyのSymbolクラスに属し、シンボル自身が持つ名前を正規表現パターンとして利用して、指定された文字列とのマッチングを実行するメソッドです。このメソッドはRuby 3.0から導入されました。
具体的には、シンボルオブジェクト.match(対象文字列) の形式で呼び出されると、まずシンボルオブジェクトの名前を文字列として取り出します。次に、その文字列を正規表現のパターンとして扱い、対象文字列に対してパターンマッチングを行います。例えば、:hello.match("hello world") と記述した場合、:hello というシンボルの文字列表現である "hello" が正規表現 /hello/ と同じように動作し、 "hello world" の中に "hello" が存在するかを検索します。
マッチが成功した場合、MatchDataオブジェクトを返します。このオブジェクトには、マッチした部分の文字列やその位置などの詳細情報が含まれています。一方、マッチが失敗した場合は nil を返します。
この機能は、正規表現リテラルを直接書く代わりに、シンボルの名前を正規表現パターンとして手軽に利用したい場合に非常に便利です。特に、プログラム内で特定のキーワードやパターンがシンボルとして管理されている際に、それらのシンボル名を使って文字列がそのパターンに合致するかを簡潔に判定するのに役立ち、コードの可読性を向上させることができます。
構文(syntax)
1:symbol_name.match("target string")
引数(parameters)
string, pos = 0
- string: マッチング対象となる文字列
- pos = 0: マッチングを開始する位置を整数で指定します。デフォルトは0(文字列の先頭)です。
戻り値(return)
MatchData | nil
指定された文字列とシンボルが一致した場合、その一致に関する情報を含むMatchDataオブジェクトを返します。一致しない場合はnilを返します。