[PHP-users 13052] Re: 任意の数値を特定文字列にフォーマットする方法

Osamu Shigematsu php-users@php.gr.jp
Wed, 05 Feb 2003 17:13:37 +0900


重松です。こんにちは。

>     $str =~ s/\d\d\d\d\d\d/YYYYMMDD/g;

これだと、要件満たしませんが。> XXX_20030101_XXX.ext は置換しない。
\d{8} と書けばいい気も。\d{6} でなくて。

echo "<?php var_dump(preg_replace('/\d{6}/','YYYYMMDD','20030101.txt')); ?>" | php -q
string(14) "YYYYMMDD01.txt"
                    ^^

それに日付以外でも「単なる 8 桁の数値」はなんでも YYYYMMDD に置換され、
都合が悪いでしょう。

元の要件がいまいちわからなかったので、コメントしませんでしたが、
正規表現を使えば済むと思います。

日付の確認は、そういう関数もあることだし。

-- 
Osamu Shigematsu <m5issige@mr.hitachi-medical.co.jp>