📘
日付の正規表現・0埋めの仕様
🎯 コードのポイント
sprintf("%04d-%02d-%02d", $1.to_i, $2.to_i, $3.to_i)
ここで %04d, %02d などの「書式指定子」が ゼロ埋めのルールを決めています。
💡 書式指定子の意味
%04d
-
%d→ 整数(decimal) -
4→ 4桁に揃える -
0→ 足りない桁を 0で埋める
例:
sprintf("%04d", 1999) # => "1999"
sprintf("%04d", 5) # => "0005"
%02d
-
%d→ 整数 -
2→ 2桁に揃える -
0→ 0埋めする
例:
sprintf("%02d", 1) # => "01"
sprintf("%02d", 11) # => "11"
💡 実際の流れ
date_str = "1999年1月5日"
正規表現でキャプチャ:
-
$1= "1999" -
$2= "1" -
$3= "5"
数値に変換して sprintf で整形すると:
sprintf("%04d-%02d-%02d", 1999, 1, 5)
→ "1999-01-05"
✅ まとめ
-
0→ 足りない桁をゼロで埋める -
2や4→ 桁数の指定 -
%d→ 整数
👉 %04d なら「整数を4桁で表示、足りない分は0埋め」
👉 %02d なら「整数を2桁で表示、足りない分は0埋め」
📘参考
スクラップに他の応用まとめる予定です。
Discussion