最初の試み
Railsシステムで任意のエラークラスを検索しようとした時、最初に以下のような検索パターンを試みましたが、期待した結果が得られませんでした:
class *Error
これが機能しなかった理由は、正規表現では*単体では「任意の文字列」を表現できないためです。*は量指定子(quantifier)であり、直前のパターンの繰り返し回数を指定するものです。
正しい正規表現
正しい正規表現パターンは以下になります:
class.*Error
正規表現の解説
この正規表現は以下の要素で構成されています:
-
class- リテラルで"class"という文字列にマッチ -
.- 改行を除く任意の1文字にマッチ -
*- 直前のパターン(この場合は.)が0回以上繰り返されることを示す量指定子 -
Error- リテラルで"Error"という文字列にマッチ
したがって、このパターンは「"class"で始まり、その後に任意の文字列(0文字以上)が続き、最後に"Error"で終わる」という文字列を検索します。
マッチする例
以下のような文字列にマッチします:
class StandardErrorclass CustomErrorclass MyApplicationError