【Ruby3.x】MatchData::==()メソッドの使い方
==メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
==メソッドは、MatchDataオブジェクト同士が等しいかどうかを比較するメソッドです。MatchDataオブジェクトとは、正規表現による文字列のマッチング操作が成功した際に、その結果に関する詳細な情報(マッチした部分文字列、キャプチャグループの内容、マッチ開始位置など)を保持する特別なオブジェクトです。
この==メソッドは、二つのMatchDataオブジェクトが「等しい」と判断されるために、以下の三つの条件をすべて満たす必要があります。一つ目は、両方のMatchDataオブジェクトが生成されるもととなった正規表現が同じであることです。二つ目は、正規表現が適用された対象の文字列が同じであることです。そして三つ目は、文字列内で正規表現のマッチングが開始された位置(オフセット)が同じであることです。
これらの三つの条件がすべて一致した場合にのみ、==メソッドは真(true)を返します。もし、これらの条件のいずれか一つでも異なる場合、たとえマッチした文字列の内容自体が同じであったとしても、==メソッドは偽(false)を返します。このため、このメソッドは単にマッチ結果の文字列だけでなく、そのマッチがどのような文脈(どの正規表現を使い、どの文字列のどの位置でマッチしたか)で発生したかまで含めて厳密に比較したい場合に利用されます。
構文(syntax)
1md1 = /Ruby/.match("Learn Ruby programming") 2md2 = /Ruby/.match("Learn Ruby programming") 3md1 == md2
引数(parameters)
other
- other: 比較対象となるMatchDataオブジェクト
戻り値(return)
Boolean
二つのMatchDataオブジェクトが、マッチした文字列、キャプチャしたグループ、およびそれらのオフセットにおいて完全に一致する場合、真(true)を返します。そうでない場合は偽(false)を返します。