今回は、正規表現を使って、与えられた文字列が IP アドレスかどうか調べるプログラムを作ってみることにする。
IPアドレス
IPアドレス(IPv4)の構造は
A.B.C.D (※)A〜Bは0以上255以下の整数
である。
これを正規表現で表すと、
/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/
となる。なお、この正規表現だけでは「0以上255以下の整数」のチェックができないので、PHP のロジックでチェックすることにする。
今回使った正規表現
- ^
- 文字列の先頭、または行終端文字の直後 にマッチする。
- $
- 文字列の末尾、または行終端文字の直前 にマッチする。
- [ ]
- 文字クラス。
この中に記述された文字の並びのうちの1文字を表す。
- -
- 文字の範囲指定。
a-z はアルファベット小文字すべてに、A-Zはアルファベット大文字すべてに、0-9は数字すべてにマッチする。
- {a,b}
- 直線の文字の a 回以上、b 回以下の繰り返し。
ここでは、文字クラス [0-9] に記述される数字が 1 桁以上 3 桁以下であることを示す。
- ( )
- サブパターン。
マッチングだけであれば不要だが、4つの整数部分を取り出して定義域チェック(0 以上 255 以下)を行うために、 マッチした部分文字列に番号を付けてやる必要がある。その場合にサブパターンを用いる。
サンプル・プログラムを次のページに掲載する。
(この項つづく)
| 2007年03月06日更新 | ||
| <<前へ | <目次> | 次へ>> |
| 戻る | 【関連ページ】 | |