文法|通常
正規表現構文
正規表現は、通常の文字 (文字 a ~ z など) と特殊文字 (
メタ文字と呼ばれる) で構成されるテキスト パターンです。パターンは、テキスト本文を検索するときに一致する 1 つ以上の文字列を記述します。正規表現は、文字パターンと検索文字列を照合するテンプレートとして機能します。
次に、遭遇する可能性のある正規表現の例をいくつか示します。
Visual Basic Scripting Edition VBScript matches/^[ t]*$/
"^[ t]*$"
1 つの空白行と一致。
/d{2}-d{5}/
"d{2}-d{5}"
ID 番号が 2 桁の数字、ハイフン、5 桁の数字で構成されているかどうかを確認します。
/<(.*)>*1>/
"<(.*)>*1>"
HTML タグと一致します。
次の表は、正規表現のコンテキストにおけるメタキャラクターとその動作の完全なリストです:
CharacterDescription 次の文字を特殊文字、リテラル文字、またはサフィックス方向参照としてマークします。または 8 進エスケープ文字。たとえば、「n」は文字「n」と一致します。 「n」は改行文字に一致します。シーケンス '\' は "" に一致し、"(" は "(" に一致します。
^
は入力文字列の先頭に一致します。
RegExp オブジェクトの
Multiline プロパティが設定されている場合、 ^ は 'n' にも一致します。
$ の後の 'r '
は入力文字列の末尾に一致します。
RegExp オブジェクトの
Multiline プロパティが設定されている場合、$ は 'n' または 'r' の前の位置にも一致します
*
は前の sub に一致します。たとえば、zo* は「z」と「zoo」に一致します。たとえば、「zo+」は一致します。 "z". + {1,} に相当します。
たとえば、「do(es)?」は、「do」または「does」に相当します。 0,1}。
n
は、
n
回一致する非負の整数です。「Bob」の「o」には一致しませんが、「food」の 2 つの o には一致します。 n
,}
n
は、少なくとも 回一致する非負の整数です。たとえば、「o{2,}」は「Bob」の「o」と一致しますが、「o{1」は一致します。 ,}' は 'o+' と同等です。{0,}' は 'o*' と同等です。
m と
n
は両方とも非負の整数です。 n <=
m は少なくとも
n
回、最大で m
回一致します。「o{1,3}」は「o{0,1}」の最初の 3 つの o と一致します。 ' は 'o?' と同等です。この文字の後に他のリミッター (*、+、?、{n
}、{
) が続く場合、カンマと 2 つの数字 ? の間にスペースを入れることはできないことに注意してください。 n
,}、{n
,m
})、マッチング モードは非貪欲モードです。非貪欲モードは検索文字列の可能な限り少ない部分と一致しますが、デフォルトの貪欲モードは検索文字列のできるだけ多くと一致します。たとえば、文字列「oooo」の場合、「o+?」は「n」を除くすべての「o」に一致します。内の文字は、「[.n]」のようなパターンを使用してください。(
pattern)
matches コレクションから取得した一致を VBScript の SubMatches
コレクションで使用してください。 Basic Scripting Edition では、
$0
…$9
属性を使用します。括弧文字を一致させるには、「(」または「)」を使用します。 (?:
pattern)
は pattern
と一致しますが、一致結果を取得しません。これは、一致を取得できず、後で使用するために保存されないことを意味します。これは、「または」文字 (|) を使用してパターンの一部を結合する場合に便利です。たとえば、「industr(?:y|ies)」は「industry|industries」より短い式です。
(?=
pattern
) 前方参照。
pattern
に一致する文字列の先頭にある検索文字列と一致します。これは非フェッチ一致です。つまり、後で使用するために一致をフェッチする必要はありません。たとえば、「Windows (?=95|98|NT|2000)」は、「Windows 2000」の「Windows」には一致しますが、「Windows 3.1」の「Windows」には一致しません。プリフェッチでは文字は消費されません。つまり、一致が発生した後、次の一致の検索は、プリフェッチを含む文字の後に開始されるのではなく、最後の一致の直後に開始されます。 (?!
パターン)
否定先読みは、文字列がパターンと一致しない任意の点で検索文字列と一致します。これは非フェッチ一致です。つまり、後で使用するために一致をフェッチする必要はありません。たとえば、「Windows (?!95|98|NT|2000)」は、「Windows 3.1」の「Windows」と一致しますが、「Windows 2000」の「Windows」とは一致しません。プリフェッチは文字を消費しません。つまり、一致が発生した後、次の一致の検索は、プリフェッチ
x|y
match x またはよ。たとえば、「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_]」と同等。
x
n は
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 の前に少なくとも ngets がある場合、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 は著作権記号 (?) に一致します。