Stringクラスには、文字列を含むか否かを判定するinclude?メソッドがあります。
"hoge.html".include?('.html') #=> true
正規表現を渡すことができないので、先頭や末尾一致には使えないなーなどと思っていたのですが…
ありました。String#end_with?とString#start_with?が。
"hoge.html".start_with?('hoge') #=> true "hoge.html".end_with?('.html') #=> true
正規表現でやるのも手ですが、必ずしも全員が習熟しているわけじゃありませんしね。
Runiusの実装を見ても、内部的に正規表現を使っているわけではないみたいです。
def start_with?(*prefixes) prefixes.each do |prefix| prefix = Rubinius::Type.check_convert_type prefix, String, :to_str next unless prefix return true if self[0, prefix.length] == prefix end false end
rubinius/string.rb at master · rubinius/rubinius · GitHub
要所要所で使い分けるのが良さげです。