[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/