【Ruby3.x】Regexp::try_convert()メソッドの使い方
try_convertメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
try_convertメソッドは、与えられたオブジェクトを正規表現オブジェクト(Regexpのインスタンス)に安全に変換することを試みるメソッドです。このメソッドは、変換に成功した場合は正規表現オブジェクトを返し、変換が不可能な場合はnilを返します。
具体的な挙動として、まず引数として渡されたオブジェクトがすでにRegexpオブジェクトそのものである場合は、そのオブジェクトをそのまま返します。次に、オブジェクトがto_regexpメソッドを定義している場合、そのto_regexpメソッドを呼び出し、その結果を正規表現として返します。
もし、オブジェクトがto_regexpメソッドを持たない場合や、to_regexpメソッドがnilを返した場合、あるいは引数自体がnilであった場合、try_convertメソッドはnilを返します。これにより、正規表現への変換を試みる際に、意図しないエラー(例外)の発生を防ぎ、プログラムの安定性を高めることができます。
このメソッドは、ある機能の引数として正規表現オブジェクトを受け取りたいが、利用者が文字列や他のオブジェクトを渡す可能性もある場合に特に役立ちます。渡された値が有効な正規表現に変換可能かどうかを事前に安全に確認し、それに合わせて処理を分岐させる柔軟なコーディングが可能になります。
構文(syntax)
1Regexp.try_convert("pattern_string")
引数(parameters)
req
- req: 変換を試みるオブジェクト
戻り値(return)
Regexp | nil
引数が正規表現オブジェクトとして解釈できる場合はその正規表現オブジェクトを、そうでない場合はnilを返します。