文字の一致

ピリオド (.) は、文字列内における改行文字 (\n) 以外の任意の印刷可能または印刷不可能な 1 文字に一致します。次の JScript 正規表現は、'aac'、'abc'、'acc'、'adc' などはもちろん、'a1c'、'a2c'、'a-c'、'a#c' などにも一致します。

/a.c/

次に、これと同じ意味を持つ VBScript 正規表現を示します。

"a.c"

入力文字列内のピリオド (.) を含むファイル名を表す文字列に一致させるには、正規表現のピリオドの前にバックスラッシュ (\) 文字を付けます。たとえば、次の JScript 正規表現は 'filename.ext' に一致します。

/filename\.ext/

次に、これと同じ意味を持つ VBScript 正規表現を示します。

"filename\.ext"

これらの表現は、このままでは制限が多すぎます。これらの表現は、任意の単一文字にしか一致しません。指定した文字セットに一致した方が便利なことが数多く考えられます。たとえば、ユーザーの入力テキストに Chapter 1、Chapter 2 のように番号を使って表現された章見出しが含まれている場合、これらの章見出しの検索が必要になることが考えられます。

角かっこ表現

一致させる文字のリストを作成するには、1 つまたは複数の文字を角かっこ ([ ]) 内に指定します。このように表現したリストを、"角かっこ表現" と呼びます。角かっこ内の通常文字は、ほかの場所で使用する場合と同様、その文字自身を表します。つまり、入力テキストにおけるその文字自体に一致します。角かっこ内で特殊文字を指定すると、ほとんどの場合、特殊文字としての意味は無効になります。ただし、次のように、例外となる文字もあります。

  • ']' 文字は、リストの先頭の項目でない限り、リストの終了を示します。リスト内で ']' 文字に一致させるには、リストの先頭 (左角かっこ '[' の直後) に指定します。
  • '\' 文字は通常どおり、エスケープ文字として機能します。'\' 文字に一致させるには、'\\' を使用します。

角かっこ表現内の文字は、正規表現において角かっこ表現が現れた位置にある 1 文字に一致します。たとえば、次の JScript 正規表現は、'Chapter 1'、'Chapter 2'、'Chapter 3'、'Chapter 4'、および 'Chapter 5' に一致します。

/Chapter [12345]/

VBScript でこれらと同じ章見出しに一致させるには、次の構文を使用します。

"Chapter [12345]"

単語 'Chapter' とそれに続く空白は、角かっこ内の文字に対して固定されていることに注意してください。角かっこ表現は、単語 'Chapter' と空白の直後にある 1 文字に一致する文字セットを指定するために使用します。この場合、9 番目にある文字がそれに該当します。

一致させる文字を指定するのに、文字そのものではなく文字範囲を使用するには、ハイフン (-) を使って、開始文字と終了文字を指定します。それぞれの文字値によって、範囲内での相対的な順番が決まります。次の JScript 正規表現には範囲表現が含まれていますが、これは、上で示した角かっこ内のリストと同じ機能を果たします。

/Chapter [1-5]/

次に、これと同じ意味を持つ VBScript 正規表現を示します。

"Chapter [1-5]"

この方法で範囲を指定する場合、開始値と終了値はどちらも範囲内に含まれます。ただし、Unicode の並び順を基準として、開始値は終了値より小さな値でなければならないことに注意してください。

角かっこ表現でハイフン文字を使用するには、次のいずれかの方法で行います。

  • ハイフン文字を円記号でエスケープします。

    [\-]
    
  • ハイフン文字を角かっこリストの先頭または末尾に配置します。次の表現は、すべての小文字の英字とハイフンに一致します。

    [-a-z]
    [a-z-]
    
  • 開始文字値がハイフン文字より小さく、終了文字値がハイフン文字と等しいか大きいような範囲を指定します。次の正規表現はどちらも、この条件を満たしています。

    [!--]
    [!-~]
    

リストまたはリスト範囲に含まれない文字を検索するには、リストの先頭にキャレット (^) 文字を挿入します。キャレット文字をリストの先頭以外の位置に挿入すると、キャレット文字自体に一致します。つまり、特殊文字としての機能は無効となります。次の JScript 正規表現は、章番号が 5 より大きい章見出しに一致します。

/Chapter [^12345]/

VBScript では次の構文を使用します。

"Chapter [^12345]"

上記の角かっこ式では、9 番目の位置にある 1、2、3、4、5 以外の任意の数字に一致します。たとえば、"Chapter 7" や "Chapter 9" などに一致します。

ハイフン文字 (-) を使って同じ意味を持つ表現式を作成することもできます。JScript の場合は、次のようになります。

/Chapter [^1-5]/

VBScript の場合は、次のようになります。

"Chapter [^1-5]"

角かっこ表現式の一般的な使用方法として、任意の英字 (大文字または小文字) および数字との一致を指定する場合が挙げられます。JScript 正規表現の場合は、次のようになります。

/[A-Za-z0-9]/

VBScript 正規表現の場合は、次のようになります。

"[A-Za-z0-9]"