《 郵便ガード - Version

正規表現とは、文字列と文字列をマッチングさせるための表現手法で、 ある文字列の中から、特定の文字列のパターンを探すために使われます。
メールヘッダーやメール本文から特定の文字列をマッチさせるとき、 正規表現を用いるとかなり的を絞った検査ができます。
例えば、日本の「co.jp」ドメインのメールアドレスにマッチさせるには、次のように表現します。

例: [a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_\-\.]+co.jp

これは少し高度な書き方ですが、もっと簡単な方法として、 件名に「東京」と「天気」が含まれているかどうかを調べるには、次のように表現します。

例: 東京.*天気

慣れるまでは簡単な表現から使用し、徐々に高度な表現をマスターすることをお勧めします。

★ご注意★
このページの説明は、マイクロソフト社のホームページの内容から、よく使う正規表現を抜粋し、要約したものです。
正規表現の詳細は、下記サイトをご覧ください。

マイクロソフト社のサイト: 「正規表現による Visual Basic Scripting Edition (VBScript) の機能強化」

※「後方参照」は、難易度が高いため割愛しました。
位置マッチング
シンボル機 能
^文字列の先頭にマッチします。
"^J""Japanese Dream" の先頭の "J" にマッチします。
$文字列の末尾にマッチします。
"m$""Japanese Dream" の末尾の "m" にマッチします。
\b任意の単語の境界にマッチします。
"se\b""Japanese Dream""se" にマッチします。
\B任意の単語の境界以外にマッチします。
リテラル
シンボル機 能
英数字文字列中の英字、数字にマッチします。
\n文字列中の改行文字にマッチします。
\f文字列中のラインフィード(LF)にマッチします。
\r文字列中のキャリッジ リターン(CR)にマッチします。
\t文字列中の水平タブにマッチします。
\v文字列中の垂直タブにマッチします。
\?文字列中の "?" にマッチします。
\*文字列中の "*" にマッチします。
\+文字列中の "+" にマッチします。
\.文字列中の "." にマッチします。
\|文字列中の "|" にマッチします。
\{文字列中の "{" にマッチします。
\}文字列中の "}" 行文字にマッチします。
\[文字列中の "[" にマッチします。
\]文字列中の "]" にマッチします。
\(文字列中の "(" 文字にマッチします。
\)文字列中の ")" にマッチします。
\\文字列中の "\" にマッチします。
\ddd8進数 "ddd" で表わされるASCII文字にマッチします。
\xdd16進数 "dd" で表わされるASCII文字にマッチします。
\uddddUNICODE "dddd" で表わされるASCII文字にマッチします。
文字クラス
シンボル機 能
[xyz]この文字セットの中の、任意の1文字にマッチします。
"[a-c]""Town Manager""a" にマッチします。
[^xyz]この文字セットの中に含まれていない、任意の1文字にマッチします。
"^[a-c]""City""i" にマッチします。
."\n" (改行文字)以外の任意の文字にマッチします。
\w単語として使用される文字列の中の、任意の文字にマッチします。
"[a-zA-Z_0-9]" と表現するのと同じです。
\W単語として使用される文字列以外の中の、任意の文字にマッチします。
"[^a-zA-Z_0-9]" と表現するのと同じです。
\d文字列中の数字にマッチします。
"[0-9]" 表現するのと同じです。
\D文字列中の数字以外にマッチします。
"[^0-9]" 表現するのと同じです。
\s文字列中のスペース文字(スペース、改行、ラインフィード、キャリッジ リターン、水平タブ、垂直タブ)にマッチします。
"[ \t\r\n\v\f]" と表現するのと同じです。
\S文字列中のスペース文字(スペース、改行、ラインフィード、キャリッジ リターン、水平タブ、垂直タブ)以外にマッチします。
"[^ \t\r\n\v\f]" と表現するのと同じです。
繰り返し
シンボル機 能
{x}この表記の直前の文字の、x個分の文字列にマッチします。
"a{3}""aaa" にマッチし、"\d{2}" は2桁の数字にマッチします。
{x,}この表記の直前の文字の、x個以上の文字列にマッチします。
"a{5,}""a" が5個以上の文字列にマッチし、"\s{5,}" は5個以上のスペース文字にマッチします。
{x,y}この表記の直前の文字の、x個以上y個以下の文字列にマッチします。
"a{3,5}""a" が3個以上5個以下の文字列にマッチし、"\d{1,3}" は1桁以上3桁以下の数字にマッチします。
?この表記の直前の文字の、0個または1個の文字にマッチします。
"abc\s?xyz""abcxyz" または "abc xyz" にマッチします。
*0個以上の直前の文字にマッチします。
+1個以上の直前の文字にマッチします。
選択とグループ化
シンボル機 能
()括弧で囲まれた文字列を句として扱います。
"(ef)""effect""chef" にマッチし、"abcde" にはマッチしません。
|上記の句を複数つなげて、その内のどれかにマッチさせたいときに使います。
"(oo)|(ky)""shcool" にも "tokyo" にもマッチします。
Copyright (C) Knowledge-i, Isao Nakata.
トップに戻る