次の方法で共有


文字の一致

更新 : 2007 年 11 月

ピリオド (.) は、文字列内の印字できる文字または印字できない文字のうち、任意の 1 文字と一致します。ただし、改行文字 (\n) とは一致しません。次の正規表現は、aac、abc、acc、adc、a1c、a2c、a-c、a#c などと一致します。

/a.c/

ファイル名のように、入力文字列の一部にピリオド (.) を含む文字列と一致させる場合は、正規表現のピリオドの前に円記号 (\) を付加します。たとえば、次の正規表現は filename.ext と一致します。

/filename\.ext/

これらの正規表現は、任意の 1 文字とだけ一致します。リストに指定した複数の文字に一致させることもできます。たとえば、数字を使った章の見出し (Chapter 1、Chapter 2 など) も検索できます。

角かっこの表現

一致文字のリストを作成するには、1 つ以上の文字を角かっこ ([ と ]) で囲みます。角かっこで囲んだ文字のリストは "角かっこ表現" と呼びます。角かっこ内では、他の場合と同じように、通常文字はその文字自体を表します。つまり、入力文字列にその文字の一致候補がある場合に一致します。角かっこ表現内では、大半の特殊文字の意味は失われます。ただし、次の例外があります。

  • ] は、最初の項目でない場合はリストを終了します。リストで ] を一致させるには、開始の [ の直後に記述します。

  • \ はエスケープ文字として機能します。\ 文字と一致させるには、\\ を使用します。

角かっこ表現内の文字は、一致候補の 1 文字だけと一致します。たとえば、次の正規表現は Chapter 1、Chapter 2、Chapter 3、Chapter 4、および Chapter 5 と一致します。

/Chapter [12345]/

Chapter およびその直後の空白の位置は、角かっこ内の文字を基準にして固定されます。角かっこ表現は、Chapter と空白の直後の 1 文字に一致する文字群だけを指定するために使用されます。この場合は 9 文字目がそれに当たります。

文字自体ではなく、文字の範囲を指定して一致文字を表現するには、範囲の開始文字と終了文字をハイフン (-) でつなぎます。指定する各文字の文字値によって、範囲内の相対位置が決まります。次の正規表現は、上に示した角かっこリストと同じ意味の範囲表現です。

/Chapter [1-5]/

この範囲指定では、範囲の開始文字と終了文字も範囲に含まれます。開始文字は Unicode の並べ替え順序において、終了文字よりも前である必要があります。

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

  • 円記号でエスケープする。

    [\-]
    
  • ハイフンを角かっこリストの先頭または最後に指定する。次の正規表現は、すべての小文字とハイフンに一致します。

    [-a-z]
    [a-z-]
    
  • 範囲の開始文字をコード順でハイフンよりも前の文字にし、終了文字をハイフンと等しいかハイフンよりも後の文字にする。次の正規表現は、どちらもこの条件を満たしています。

    [!--]
    [!-~]
    

リストまたは範囲にないすべての文字を検索するには、リストの先頭にカレット (^) を指定します。リストの先頭以外に指定したカレットは、カレット文字と一致します。次の正規表現は、5 を超える番号の章見出し (Chapter) と一致します。

/Chapter [^12345]/

上の例では、9 文字目が 1、2、3、4、または 5 以外のものと一致します。たとえば、Chapter 7 や Chapter 9 と一致します。

上の正規表現は、ハイフン (-) を使用して表すこともできます。

/Chapter [^1-5]/

角かっこ表現の一般的な使用方法として、任意の大文字または小文字のアルファベット、または任意の数字と一致させる場合があります。この正規表現の例を次に示します。

/[A-Za-z0-9]/

参照

その他の技術情報

正規表現の概説