データ識別子のパターン言語の仕様

データ識別子のパターンを定義するとき、3 種類のトークンを使用できます。トークンはファイルの冒頭にある空白文字を含まないシーケンス、あるいは 1 つ以上の空白文字が前についたシーケンスで、空白文字が後につくかファイルの末尾にあるものです。データ識別子のパターンで使われる 3 種類のトークンは次のとおりです。
  • 文字リテラル
  • 角カッコ表現
  • 特殊文字
省略可能な量指定子によって各トークンに続けることができます。
データ識別子のパターンは、完全なトークンまたはトークンのセットにのみ一致します。
リテラル文字、メタ文字および特殊文字
ほとんどの文字は、データ識別子のパターン言語においてリテラル一致です。たとえば、データ識別子のパターンにおける文字
a
は、ユーザーのコンテンツにおいて文字
a
に一致します。データ識別子のパターン言語には 4 つのメタ文字が含まれています。文字リテラルとしてこれらのメタ文字を一致させるには、バックスラッシュを使ってユーザーのデータ識別子のパターンにおいてこれらの文字をエスケープしてください。これらのメタ文字の説明については「メタ文字」を参照してください。
メタ文字
文字
説明
[
この文字は角カッコ表現の開始に使われます。
{
この文字は先行するトークンの数量化に使われます。
?
この文字は先行するトークンの数量化に使われます。
\
この文字は後続する文字のエスケープに使われます。
データ識別子のパターン言語には 5 つの事前定義済みの特殊文字が含まれています。これらのメタ文字の説明については「特殊文字」を参照してください。
特殊文字
文字
説明
\l
この特殊文字はすべての ASCII 文字に一致します。
\L
この特殊文字は Unicode 文字を含むすべての非 ASCII 文字に一致します。
\d
この特殊文字はすべての ASCII 数字に一致します。
\D
この特殊文字は Unicode 文字を含むすべての非 ASCII 数字に一致します。
\w
この特殊文字は
\l
または
\d
で一致しない Unicode 文字を含むすべての文字に一致します。
角カッコ表現
角カッコ表現は
[
から始まり
]
で終了し、表現の本文に少なくとも 1 文字を含みます。たとえば、角カッコ表現
[abcd]
は、文字「a」、「b」、「c」または「d」のいずれかに一致します。
2 つの文字をハイフン
-
で区切ることによって、角カッコ表現内に文字の範囲を含めることができます。たとえば、角カッコ表現
[a-z]
は、小文字の「a」から「z」までに一致します。
-
で区切られるすべての 2 文字は、範囲として解釈されます。範囲の相対的な順序は重要ではありません。
[a-z]
[z-a]
は同じ文字列に一致します。
次のルールに従い、角カッコ表現に文字「]」および「-」を含めることができます。
  • 「]」文字は、角カッコ表現の最初の文字にする必要があります。たとえば、
    []a-z]
    は文字「]」または「a」から「z」の間のすべての小文字に一致します。
  • 文字「-」は、角カッコ表現の最初または最後の文字にする必要があります。角カッコ表現に「]」および「-」の両方の文字を含める場合、「]」は最初の文字に、「-」は最後の文字にする必要があります。たとえば、
    []-]
    は「]」または「-」に一致します。
解釈の順序
データ識別子のパターンは、左から右に解釈されます。たとえば、角カッコ表現
[a-d-z]
は、範囲
a-d
として解釈された後、リテラル
-
および
z
として解釈されます。
量指定子
量指定子によってデータ識別子のパターンにおけるすべてのトークンに従うことができます。量指定子は一致するパターンの発生数を指定するものです。データ識別子のパターン言語で利用可能な量指定子の説明については、「量指定子」を参照してください。
量指定子
量指定子
説明
?
この量指定子は、表現が一致する先行トークンの発生数がゼロまたは 1 となるように指定します。
{
n
}
この量指定子は、表現が一致する先行トークンの発生数が厳密に
n
となるように指定します。
{
n
,
m
}
この量指定子は、表現が一致する先行トークンの発生数が
n
から
m
となるように指定します (包含)。