文字の一致

ピリオド (.) は、改行文字 (\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"

これらの正規表現の使用方法には、かなりの制限があります。任意の 1 文字と一致するだけです。多くの場合、リストの特定の文字と一致するような指定が必要です。たとえば、第 1 章 (Chapter 1)、第 2 章 (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) と一致します。

/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]"