文法|通常
一般的に使用される正規表現構文の例
遭遇する可能性のある正規表現の例をいくつか示します:
/^[ t]*$/ "^[ t]*$" は空白行と一致します。
/d{2}-d{5}/ "d{2}-d{5}" ID 番号が 2 桁の単語、
ハイフン、および 5 桁の数字で構成されているかどうかを検証します。
/<(.*)>*1>/ "<(.*)>.*1>" は HTML タグと一致します。
次の表は、正規表現のコンテキストにおけるメタキャラクターとその動作の完全なリストです:
文字の説明
次の文字を特殊文字、リテラル文字、
先読み引用符、または記号としてマークします。 8 進エスケープ文字。たとえば、「n」は文字「n」と一致します。 「n」
は改行文字と一致します。シーケンス '\' は "" に一致し、"(" は "(" に一致します。
^ は入力文字列の先頭に一致します。 RegExp オブジェクトの
Multiline プロパティが設定されている場合、^ は 'n' または 'r の後ろにも一致します' 位置。
$ は入力文字列の末尾に一致します。RegExp オブジェクトの
Multiline プロパティが設定されている場合、$ は 'n' または 'r' の前の位置にも一致します。たとえば、zo* は「z」に一致し、
"zoo" は前の部分式に 1 回以上一致します。
と "zoo" の場合、+ は {1,} と同等です。たとえば、"do(es)?" は 1 回一致します。 " または "does" の "do"。? {0,1} と同等です。
{n} n は負ではない整数です。特定の n 回一致します。たとえば、'o{2}' は
には一致しません「Bob」の「o」ですが、「food」の 2 つの o と一致します。たとえば、「o{2,}」は負ではない整数です。
「Bob」では、「foooood」のすべての o と一致します。
は「o+」と同等であり、これは
{n,m} m および n と同等です。両方とも非負の整数であり、n と一致します。「o{1,3}」は、「fooooood」の最初の 3 つの o と一致します。 'o?' と同等です。この文字の後に他の修飾子 ( *、+、?、{n}、{n,}、
{n,m})。デフォルトの貪欲モードは、検索された文字列のできるだけ少ない
に一致します。たとえば、文字列「oooo」の場合、「o+?」は「n」を除くすべての「o」に一致します。 'n' を含む任意の
文字に一致するには、'[.n]' のようなパターンを使用し、
Visual Basic Scripting Edition の SubMatches コレクションを使用して、生成された一致を取得します。 $0 ~ $9 プロパティを使用します。
かっこ文字を一致させるには、「(」または「)」を使用します。
(?:pattern) は pattern に一致しますが、一致結果を取得しません。つまり、不一致
であり、後で使用するために保存されません。これは、「または」文字 (|) を使用してパターンの一部を結合する場合に便利です。たとえば、「industr(?:y|ies)」は「industry|industries」より短い式です。
(?=pattern) 前方参照。パターンに一致する文字列の先頭にある検索文字
string と一致します。これは非フェッチ一致です。つまり、後で使用するために一致をフェッチする必要はありません
。たとえば、「Windows (?=95|98|NT|2000)」は、「Windows
2000」の「Windows」と一致しますが、「Windows3.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」と一致します。
[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] に相当します。
タブ文字と一致しません。 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 は著作権記号 (?) に一致します。