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

sorako yamamoto php-users@php.gr.jp
Thu, 06 Feb 2003 07:38:53 +0000


重松さん、青木さん、ご回答の程ありがとうございます。

> <?php
> 
>         $ary = 
array('20030101.txt','x_20030101.txt','x_20030231.txt','x_20030101_x.txt');
>         foreach($ary as $item){
>                 $before = $item;
>                 
if(preg_match('/(\d{4})([0][1-9]|1[12])([0-3]\d)/',$item,$matches)){
>                         var_dump($matches);
>                         list(,$y,$m,$d) = $matches;
>                         $y = (int)$y;
>                         $m = (int)$m;
>                         $d = (int)$d;
>                         // Validate a gregorian date
>                         print "Year $y month $m and date $d is " . 
(checkdate($m,$d,$y) ? '' : 'in') . "valid\n";
>                 }
>         }
> ?>

上記のソースで試してみました。
そのときに、'20031001.txt'でテストしたところ、

if(preg_match('/(\d{4})([0][1-9]|1[12])([0-3]\d)/',$item,$matches))

の中に入っていなかったので、

青木さんに教えていただいたサイトを参考に
if(preg_match('/(\d{4})([0][1-9]|1[012])([0-3]\d)/',$item,$matches))
                                   ~~
と修正したところ、正常に動作しました。
合っていますよね...?
正規表現についてまだ勉強不足なもので…





_________________________________________________________________
最新のファイナンス情報とライフプランのアドバイス MSN マネー  
http://money.msn.co.jp/