APPENDIX:正規表現

Microsoft VBScript の RegExp オブジェクトを使用しています。
http://msdn.microsoft.com/ja-jp/library/cc392403.aspx

正規表現のパターンの記述には、特別な文字およびエスケープ シーケンスが使用されます。次の表は、正規表現で使用できる文字およびエスケープ シーケンスの一覧です。この表では、簡単な使用例も含めて説明します。

文字 内容
\ 次に続く文字が特別な文字またはリテラルであることを示します。たとえば、”n” は “n” という文字と一致します。”\n”は、改行文字と一致します。”\\” は、”\” と一致します。”\(” は “(” と一致します。
^ 入力の開始と一致します。
$ 入力の終端と一致します。
* 直前の文字と 0 回以上一致します。たとえば、”zo*” は “z” とも “zoo” とも一致します。
+ 直前の文字と 1 回以上一致します。たとえば、”zo+” は “zoo” とは一致しますが、”z” とは一致しません。
? 直前の文字と 0 回または 1 回一致します。たとえば、”a?ve?” は “never” の “ve” に一致します。
. 改行文字以外の任意の単独文字と一致します。
(pattern) 引数 pattern に指定した文字と一致します。一致する文字列が見つかったら、記憶されます。一致した部分は、Matches コレクションの項目 [0]…[n] から取得できます。かっこ文字、() を指定するには、”\(” および “\)” を使用します。
x|y x と y のどちらかと一致します。たとえば、”z|wood” は “z” と “wood” に一致します。”(z|w)oo” は、”zoo” と “wood” に一致します。
{n} n には、0 以上の整数を指定します。直前の文字と正確に n 回一致します。たとえば、”o{2}” は、”Bob” の “o” とは一致しませんが、”foooood” の最初の 2 つの o とは一致します。
{n,} n には、0 以上の整数を指定します。直前の文字と少なくとも n 回一致します。たとえば、”o{2,}” は、”Bob” の “o” とは一致しませんが、”foooood” のすべての o と一致します。”o{1,}” は、”o+” と同じ意味になります。”o{0,}” は、”o*” と同じ意味になります。
{n,m} m および n には、0 以上の整数を指定します。直前の文字と n ~ m 回一致します。たとえば、”o{1,3}” は、”fooooood” の最初の 3 つの o と一致します。”o{0,1}” は、”o?” と同じ意味になります。
[xyz] 文字セット。角かっこで囲まれた文字の中のいずれかと一致します。たとえば、”[abc]” は “plain” の “a” と一致します。
[^xyz] 否定の文字セット。角かっこで囲まれた文字にはない任意の文字と一致します。”[^abc]” は、”plain” の “p” と一致します。
[a-z] 文字の範囲。指定した範囲に含まれる任意の文字に一致します。たとえば、”[a-z]” は、”a” から “z” までの任意のアルファベットの小文字に一致します。
[^m-z] 否定の文字の範囲。指定した範囲に含まれていない任意の文字に一致します。たとえば、”[^m-z]” は “m” から “z” までの範囲に含まれない任意の文字に一致します。
\b 単語の境界と一致します。単語の境界とは、単語とスペースの間の位置のことです。たとえば、”er\b” は、”never” の “er” に一致します。”verb” の “er” には一致しません。
\B 単語の境界ではない部分と一致します。たとえば、”ea*r\B” は、”never early” の “ear” と一致します。
\d 数字と一致します。[0-9] と指定した場合と同じ意味になります。
\D 数字以外の文字と一致します。[^0-9] と指定した場合と同じ意味になります。
\f フォームフィード文字と一致します。
\n 改行文字と一致します。
\r キャリッジ リターン文字と一致します。
\s スペース、タブ、フォームフィードなどの任意の空白文字と一致します。”[ \f\n\r\t\v]” と指定した場合と同じ意味になります。
\S 空白文字のない部分と一致します。”[^ \f\n\r\t\v]” と指定した場合と同じ意味になります。
\t タブ文字と一致します。
\v 垂直タブ文字と一致します。
\w 単語に使用される任意の文字と一致します。これには、アンダースコアも含まれます。”[A-Za-z0-9_]” と指定した場合と同じ意味になります。
\W 単語に使用される文字以外の任意の文字と一致します。”[^A-Za-z0-9_]” と指定した場合と同じ意味になります。
\num >num には、正の整数を指定します。既に見つかり、記憶されている部分と一致します。たとえば、”(.)\1″ は、連続する 2 つの同じ文字に一致します。
\n n に指定した 8 進数のエスケープ値と一致します。8 進数の値には、1 桁、2 桁、または 3 桁で指定します。たとえば、”\11″ と “\011″ は、両方ともタブ文字に一致します。”\0011″ は、”\001” および “1” と同じ意味になります。8 進数のエスケープ値は、256 を超えることはできません。256 を超える数値を指定した場合、初めの 2 桁で値が評価されます。この表記により、正規表現で ASCII コードを使用できるようになります。
\xn n に指定した 16 進数のエスケープ値と一致します。16 進数のエスケープ値は、2 桁である必要があります。たとえば、”\x41″ は、”A” に一致します。”\x041″ は、”\x04″ および “1”と同じ意味になります。この表記により、正規表現で ASCII コードを使用できるようになります。