2007-06-13から1日間の記事一覧

シングルクォートの文字列リテラルで置換されるもの

Rubyでは、シングルクォートでくくられた文字列リテラル '...' の中で使える \ のエスケープは、\\ と \' だけです。そのことを確かめようと思いました。 プログラムで \すべての文字 という形の文字列を作り、evalして長さがいくら減るかを調べます。 s = '…

Benchmarkモジュールでベンチマークテスト

複数の実装方法のどちらが速いかな?とRubyで調べたいときには、Benchmarkモジュールが便利です。 1〜nまでの和を計算する二つの方法を比較してみましょう。以下のプログラムでは、足し算を本当に繰り返して求める方法(method1)と、公式を使って計算で求める…

文字列の分割(scanとsplit)

String#scanを使うと、パターンを指定して必要な文字列を抜き出すことができます。 String#splitを使うと、区切り文字(デリミタ)を指定して必要な文字列を抜き出すことができます。 以下に例を示します。 p '123,45;6789/012'.scan(/\d+/) #=> ["123", "45…

Mailクラスでメールを解析する

Mailクラスを使うとメールを解析することができます。以下では、mbox形式のファイルストリームからメールを読み出し、差出人に example.com が含まれているものを集計しています。 require 'mailread' MBOX = 'math_girls.mbox' from = Hash.new(0) File.ope…