PHP実習:正規表現によるパターンマッチ
今日から正規表現について学んでいく。
正規表現とは、「文字列の集合を1つの文字列で表現する方法」である。もともとは文法を数学的に研究するための形式言語理論から生まれたものを文字検索ツールとしてプログラミングで使っている。
Webプログラミングの世界ではバリデーション(入力値のチェック)で使われるケースが多い。文字数や順序が特定の型にはまっているかを調べることで、データベースの不具合を防いだりサイトを攻撃から守ったりできるようになる。
郵便番号の書き方を文字列パターンとして表現し、チェックしてみる。
<?php
$zipcode1='115-0002';
$zipcode2='220-601';$result1=preg_match('/\A([0-9]{3})-([0-9]{4})\z/',$zipcode1);
$result2=preg_match('/\A([0-9]{3})-([0-9]{4})\z/',$zipcode2);var_dump($result1);
var_dump($result2);
preg_match()は正規表現で表された文字列パターンとチェック対象の文字列が一致するかを調べる関数である、マッチしたときに「1」、しなかったときに「2」を返す。
preg_match('/正規表現によって作られたパターン/',検索する文字列)
第1引数には正規表現による文字列パターンを記述する。正規表現はスラッシュで囲むことが必須になる。 第2引数で検索したい文字列を入れる。
今回のコードにおいて、正規表現は「\A([0-9]{3})-([0-9]{4})\z」の部分になる。
\A ([0-9]{3}) - ([0-9]{4}) \z
\A...文字列の始まり
([0-9]{3})...0~9の数値3桁
-...ハイフン1文字
([0-9]{4})...0~9の数値4桁
\z...文字列の終わり
正規表現の基本構文も見ようと思ったが、長くなりそうなので今日はここまで。
今日は短い…。