文字列内に特定の文字が含まれているかどうか、パターンマッチをしたい場合は以下のように記述することにより可能になります。
下記サンプルソースは、先頭にERROR:が含まれる文字列を表示します。
以下のサンプルはmsg配列に3つの文字列を代入後、eachブロックで各配列要素をチェックします。 if文では、先頭がERROR:の文字列の場合、その文字列を表示するようになっています。 尚、if v =~ /^ERROR:/ を if /^ERROR:/ =~ v と記述しても動作します。
#!/usr/bin/ruby
msg = []
msg << "STATUS: foo() OK"
msg << "ERROR: error found."
msg << "STATUS: bar() OK"
msg.each {|v|
puts v if v =~ /^ERROR:/
}
上記サンプルソースを実行すると、ERROR:が含まれる文字列のみ表示されます。
$ ruby pattern_match.rb ERROR: error found.