定型文字列から,数字を抜き出したい時がある。
降水確率0% 降水確率90%
このように定型フォーマットで出力の文字列は山ほどアル
フォーマットを見つける
降水確率NN%
と見なして、数字だけを取出すことは可能.
実例
require "scanf" >> "降水確率0%".scanf "降水確率%d\\%" => [0] >> "降水確率12%".scanf "降水確率%d\%" => [12] >> "降水確率123%".scanf "降水確率%d\%" => [123]
簡単ですね.いちいち正規表現考えるより早いよ.定型文の処理は楽です.とても
仕事で使われている文字列のパーサーを作ってる時間がもったいないよ。
注意点
次のフォーマットには強い
文字列+数字+文字列
工夫が必要
文字列+区切り文字+文字列
のようなフォーマットだと工夫が必要
フォーマット文字を扱う
空白
>space > > フォーマット中の空白は(0個を含む)任意の数の空白にマッチします。 > p "a 10".scanf("%s %d") # => ["a", 10] > p "a10".scanf("%1s %d") # => ["a", 10]
> % そのもの
>%%
参考
ruby マニュアル