データベース内のレコードの文字列から意味を抽出するメソッドを開発する必要があります。文字列の例を次に示します。
MyString = "Purse $75,000. (up To $14,250 Nysbfoa) For Maidens, Fillies And Mares Three Years Old And Upward. Three Year Olds, 118 Lbs.; Older, 123 Lbs. One And One Eighth Miles. (Inner turf)"
文字列が与えられたら、race_recordを作成できるように処理する必要があります。
race_record[:purse] = 75000
race_record[:race_type] = "Maidens"
race_record[:sex] = "Fillies And Mares"
race_record[:age] = "Three Year Old And Upward"
race_record[:distance] = "One And One Eighth Miles"
race_record[:surface] = "inner turf"
私は、ルビーと一連の正規表現を使用してデータを抽出することを計画していました。例えば:
race_record[:purse] = Mystring.scan(/(?<=\Purse\s[$])(.*?)(?=\.)/)
race_record[:race_type] = Mystring.sub(....)
etc.
私の質問は、正しい正規表現が何であるかということではありません。目的を考えると、私が提案したアプローチは正しい方法ですか、それともより良いアプローチ、あるいは重労働を行うことができる宝石さえありますか?