phpで正規表現したよ
iyamaです。
更新遅くなってすみません。
今日は珍しくphpで正規表現使ったので、そのお話。
ある文字列($str)の中から、日付(YYYY/MM/DD)のみ取得しようと思い、
以下のようなコードを書きました。
$str = "xx2012/01/13xxxxx"; $pattern = '/[0-9]{4}¥/[0-9]{2}¥/[0-9]{2}/'; $result = array(); preg_match($pattern, $str, $result); var_export($result);
こうすると、結果
array ( 0 => "2012/01/13" )
みたいなのが、入ってくると思います。
これでいいんですけど、年、月、日の値も別々に欲しいなーって考えたとき、
この値($result[0])をsplitとかやだよ。。って思ったんですけど、
なんと、正規表現にいいのがありました。
これです↓
$patternのとこに注目してください。
$str = "xx2012/01/13xxxxx"; $pattern = '/([0-9]{4})¥/([0-9]{2})¥/([0-9]{2})/'; $result = array(); preg_match($pattern, $str, $result); var_export($result);
出力結果
array ( 0 => "2012/01/13", 1 => "2012", 2 => "01", 3 => "13", )
ね。便利だね。
最初に、$patternで指定した全体の値。
次に()でくくった部分を順番に配列に格納。
素敵な仕様です。
。。。。。て、これは一般常識ですかね?
正規表現知らなすぎですよね。精進します。。
以上です。
※preg_match()のところ、修正しました。(2012/01/14)
こうじゃなかったけ
preg_match($str, $pattern, $result);
↓
preg_match($pattern, $str, $result);
ほ、ほんとだ。。!間違えました。
ご指摘ありがとうです。