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