rubyでの正規表現の確認をするのはここが便利
rubular.com
通常文末のマッチを正規表現で書く場合は $
を使うが rubyの場合は複数行の場合は $
を使うと1行づつ評価して検索する
hello
goo by
上記のような2行のテキストの場合、以下どちらもマッチする
texts.match(/hello$/)
texts.match(/by$/)
2行だけマッチさせたい場合は \Z
もしくは\z
を利用する
この2つの違いは文末が改行かどうかにより挙動が変わる
もっとも厳密なのは \z
なので基本的にはこれを利用する
texts.match(/hello\z/) # マッチしない
texts.match(/by\z/)