正規表現

正規表現は、入力されたデータの検証に利用されています。
一般的に Webアプリケーションでは閲覧者から入力を求めるフォームが利用されています。しかしながら、入力されたデータがアプリケーションで想定している内容であるとは限りません。正規表現のパターンマッチングでは、こうした入力されたデータの内容をチェックし、その妥当性を検証します。
パターンマッチング
パターンマッチングとは、検証する対象が、正規表現で記述された「パターン」に照らし合わせて、それが一致したときに「マッチする」ということになります。
例えば、http://www.scollabo.com/banban/ という URI を分解すると、
これを正規表現で 「パターン」 を作成すると、
^http://.+/$
このパターンを詳しく解説すると、^ は文字列の先頭を表わす 「メタ文字」を意味し 、$ は文字列の末尾を表わす 「メタ文字」 です。http:// は文字列の並びそのものを示しています。
正規表現では、文字そのものを表わすことを 「リテラル」 と呼び、"." のような記号を 「任意の1文字」という特別な意味を持ちます。
+ は、直前に記述された正規表現が1回以上連続するという意味を持ちます。つまり、.+ とは、任意の1文字の1回以上の連続というパターンが成立します。ここでは、scollabo、com、banban などのアルファベット文字がドットで区切られ連続しているという構造をもちます。
なお、正規表現で使う代表的なメタ文字は以下のとおりです。
メタ文字 意味
^ 文字列の先頭をあらわすが、 [ の次に来る場合や [ ] の中は除く
$ 文字列の末尾を表わす
+ 1回以上の連続する文字
* 0回以上の連続する文字
? 0回、または1回だけの文字
{n} n回以上の連続する文字
{n,m} n回から m回まで連続する文字
{.m} 0回から m回まで連続する文字
[ ] [ ]内のいずれかの1文字
. 任意の1文字 (ただし改行文字を除く)
| OR
() 本文を参照する文字
\ エスケープ文字 (この記号の後の特殊文字をそのまま出力する)
\n 改行文字
この表にしたがって、先ほどの URI を更に絞り込んだパターンを作成すると、
  ^http://[a-z]+(\.[c-o]+)+/[a-n]+$
このパターンでは、http:// 以降の最初の文字列が a 〜 z の間の小文字アルファベットで、次がカンマを含んだ c 〜 o までの小文字アルファベット、最後はスラッシュの後に a 〜 n までの小文字アルファベットであることが分かります。
[a-z] のようなパターンを 「文字クラス」 と呼び、大文字や小文字、数字などを利用することができます。
以下は、正規表現で利用できる文字クラスです。


This Page is HTML4.01 Valid! 最新更新日 2004年2月8日   最新更新日 2004年4月1日
Copyright(C) 2002〜2004 banban@scollabo.com