正規表現 - メタキャラクター
次の表には、正規表現のコンテキストにおけるメタキャラクターとその動作の完全なリストが含まれています。
文字 | 説明 |
---|---|
次の文字を特殊文字、リテラル文字、後方参照、または 8 進エスケープ文字としてマークします。たとえば、「n」は文字「n」と一致します。 「n」は改行文字に一致します。シーケンス '\' は "" に一致し、"(" は "(" に一致します。 | |
^ | は入力文字列の先頭に一致します。 RegExp オブジェクトの Multiline プロパティが設定されている場合、^ は 'n' にも一致します。 |
$ | の後の 'r ' は、入力文字列の末尾と一致します。 RegExp オブジェクトの Multiline プロパティが設定されている場合、 $ は、先行する部分式 0 または 'r' の前の位置とも一致します。たとえば、zo* は「z」と「zoo」に一致します。 * は、前の部分式に 1 回一致します。たとえば、「zo+」は「zo」と「zoo」に複数回一致します。 + は、{1,}? |
{n,} | |
{n,m} | m と n はどちらも負ではない整数で、n <= m まで一致します。たとえば、「o{1,3}」は最初の 3 回と一致します。 「fooooood」の o は、「o?」と同等であることに注意してください。この文字の後に次の文字が続く場合、カンマと 2 つの数字の間にスペースを入れることはできません。他のリミッター (*、+、?、{n}、{n,}、{n,m}. ) の場合、マッチング モードは非貪欲モードですが、非貪欲モードでは、検索文字列の可能な限り少ない部分と一致します。デフォルトの貪欲モードは、検索された文字列に可能な限り一致します。たとえば、文字列「oooo」の場合、「o+?」は単一の「o」に一致しますが、「o+」はすべての「o」に一致します。 . |
(?:pattern) | はパターンに一致しますが、一致結果を取得しません。これは、一致を取得できず、後で使用するために保存されないことを意味します。これは、「または」文字 (|) を使用してパターンの一部を結合する場合に便利です。たとえば、「industr(?:y|ies)」は「industry|industries」より短い式です。 |
(?=pattern) | 前方参照。文字列一致パターンの先頭にある検索文字列と一致します。これは非フェッチ一致です。つまり、後で使用するために一致をフェッチする必要はありません。たとえば、「Windows (?=95|98|NT|2000)」は、「Windows 2000」の「Windows」には一致しますが、「Windows 3.1」の「Windows」には一致しません。プリフェッチでは文字は消費されません。つまり、一致が発生した後、次の一致の検索は、プリフェッチを含む文字の後に開始されるのではなく、最後の一致の直後に開始されます。 |
(?!pattern) | 否定検索は、pattern に一致しない文字列の先頭にある検索文字列と一致します。これは非フェッチ一致です。つまり、後で使用するために一致をフェッチする必要はありません。たとえば、「Windows (?!95|98|NT|2000)」は、「Windows 3.1」の「Windows」と一致しますが、「Windows 2000」の「Windows」とは一致しません。プリフェッチでは文字は消費されません。つまり、一致が発生した後、次の一致の検索は、プリフェッチを含む文字の後に開始されるのではなく、最後の一致の直後に開始されます。 |
x|y | は、x または y と一致します。たとえば、「z|food」は「z」または「food」と一致します。 '(z|f)ood' は、「zood」または「food」と一致します。 |
[xyz] | キャラクターコレクション。含まれている文字のいずれかと一致します。たとえば、「[abc]」は「plain」の「a」と一致します。 |
[^xyz] | ネガティブなキャラクターのコレクション。含まれていない任意の文字と一致します。たとえば、「[^abc]」は「plain」の「p」、「l」、「i」、「n」に一致します。 |
[a-z] | 文字範囲。指定された範囲内の任意の文字と一致します。たとえば、「[a-z]」は、「a」から「z」の範囲内の任意の小文字のアルファベット文字と一致します。 |
[^a-z] | 否定文字範囲。指定された範囲内にない任意の文字と一致します。たとえば、「[^a-z]」は、「a」から「z」の範囲にない任意の文字と一致します。 |
b | は、単語とスペースの間の位置を指す単語境界に一致します。たとえば、「erb」は「never」の「er」と一致しますが、「動詞」の「er」とは一致しません。 |
B | は単語以外の境界に一致します。 「erB」は「動詞」の「er」と一致しますが、「never」の「er」とは一致しません。 |
cx | は、xで指定された制御文字と一致します。たとえば、cM は Control-M または復帰文字と一致します。 x の値は、A ~ Z または a ~ z のいずれかでなければなりません。それ以外の場合、c はリテラルの「c」文字として扱われます。 |
d | は数字と一致します。 [0-9]に相当します。 |
D | は、数字以外の文字と一致します。 [^0-9] と同等。 |
f | はフォーム フィードと一致します。 x0c および cL に相当します。 |
n | は改行文字と一致します。 x0a および cJ に相当します。 |
r | は復帰文字と一致します。 x0d および cM に相当します。 |
s | は、スペース、タブ、フォーム フィードなどを含む任意の空白文字と一致します。 【fnrtv】に相当。 |
S | は、空白以外の文字と一致します。 [^ fnrtv] に相当します。 |
t | はタブ文字と一致します。 x09 および cI に相当します。 |
v | は垂直タブ文字と一致します。 x0b および cK に相当します。 |
w | は、アンダースコアを含む任意の単語文字に一致します。 「[A-Za-z0-9_]」と同等。 |
W | は、単語以外の文字と一致します。 「[^A-Za-z0-9_]」と同等。 |
xn | は n と一致します。n は 16 進数のエスケープ値です。 16 進数のエスケープ値は、正確に 2 桁の長さである必要があります。たとえば、「x41」は「A」と一致します。 「x041」は「x04」および「1」と同等です。 ASCII エンコーディングは正規表現で使用できます。 |
num | は num と一致します。ここで、num は正の整数です。取得した一致への参照。たとえば、「(.)1」は、連続する 2 つの同一の文字に一致します。 |
n | 8 進エスケープ値または後方参照を識別します。 n の前に少なくとも n 個のフェッチされた部分式がある場合、n は後方参照になります。それ以外の場合、n が 8 進数 (0 ~ 7) の場合、n は 8 進数のエスケープ値になります。 |
nm | 8 進エスケープ値または後方参照を識別します。 nm の前に少なくとも nm 個の取得可能な部分式がある場合、nm は後方参照になります。 nm の前に少なくとも n が取得されている場合、n は後方参照であり、その後にリテラル m が続きます。前述の条件がどちらも当てはまらず、n と m が両方とも 8 進数 (0 ~ 7) である場合、nm は 8 進数のエスケープ値 nm と一致します。 |
nml | n が 8 進数 (0 ~ 3) で、m と l が両方とも 8 進数 (0 ~ 7) の場合、8 進数のエスケープ値 nml と一致します。 |
un | は n と一致します。ここで、n は 4 桁の 16 進数で表される Unicode 文字です。たとえば、u00A9 は著作権記号 (?) に一致します。 |