Ruby Tips!

RubyのTipsを紹介します

正規表現のメタ文字をエスケープする

文字列の中で正規表現で特別な意味を持つメタ文字をバックスラッシュでエスケープするにはRegexp.quoteまたはRegexp.escapeを使って以下のようにする。

p Regexp.quote('...') #=> "\\.\\.\\."
p Regexp.escape('^$') #=> "\\^\\$"

これらのメソッドはメタ文字自体にマッチする正規表現を簡単に記述したい場合に利用できる。

p /#{Regexp.quote('...')}/ =~ "..." #=> 0
p /#{Regexp.quote('...')}/ =~ "abc" #=> nil