正規表現は、通常の文字(文字AからZなど)と特殊文字( Metacharactersと呼ばれる)で構成される文字通りのパターンです。このパターンは、テキスト本体を検索するときに一致する1つ以上の文字列を説明しています。正規表現は、検索された文字列と文字パターンを一致させるテンプレートとして機能します。
ここにあなたが遭遇するかもしれない正規表現の例がいくつかあります:
| jscript | vbscript | マッチ |
|---|---|---|
| /^/[/t]*$/ | ^ /[ /t]*$ | 空白線を一致させます。 |
| // d {2} - /d {5}/ | /d {2} - /d {5} | ID番号が2桁の番号、ハイフン、5桁の数字で構成されていることを確認します。 |
| /<(.*)> .*<///1>/ | <(。*)>。*</// 1> | HTMLタグを一致させます。 |
次の表は、メタチャラクターの完全なリストと、正規表現のコンテキストでの行動の完全なリストです。
| キャラクター | 説明する |
|---|---|
| / | 次のキャラクターを、特別なキャラクター、プリミティブキャラクター、後方参照、またはオクタルエスケープキャラクターとしてマークします。たとえば、「n」はキャラクターnと一致します。 '/n'は新しいライン文字に一致します。シーケンス '//'は /and /(matches(。 |
| ^ | 入力文字列の開始位置に一致します。 regexpオブジェクトのマルチラインプロパティが設定されている場合、 ^は '/n'または '/r'後の位置も一致します。 |
| $ | 入力文字列の終了位置に一致します。 regexpオブジェクトのマルチラインプロパティが設定されている場合、$は「/n」または「/r」の前の位置と一致します。 |
| * | 以前のサブエクスペッションゼロまたは複数回一致します。たとえば、Zo*はZと動物園に一致させることができます。 * {0、}に相当します。 |
| + | 以前のサブエクスペッションを1回以上一致させます。たとえば、「Zo+」はZoとZooと一致しますが、Zではありません。 +は{1、}に相当します。 |
| ? | 以前のサブエクスペッションゼロまたは1回と一致します。たとえば、do(es)はdoまたはdoを行うことができます。 {0,1}に相当します。 |
| { n } | nは非陰性整数です。決定されたn時間を一致させます。たとえば、 'o {2}'はボブの「O」と一致することはできませんが、2つのOSを食品に一致させることができます。 |
| { n 、} | nは非陰性整数です。少なくともn回一致します。たとえば、 'o {2、}'はボブの「O」と一致することはできませんが、foooooodのすべてのOSと一致させることができます。 'o {1、}'は 'o+'に相当します。 'o {0、}'は 'o*'に相当します。 |
| { n 、 m } | mとnの両方が非陰性整数であり、 n <= m 。少なくともn回一致し、 m回まで一致させます。 liu、o {1,3}は、foooooodの最初の3つのOSと一致します。 'o {0,1}'は「o?」に相当します。コンマと2つの数字の間にスペースがないことに注意してください。 |
| ? | 一致するパターンは、文字のすぐに他の制限文字(*、 +、?、{ n }、{ n 、}、{ n 、 m })が続く場合の非グリーディです。非グリーディパターンは、できるだけ少ない文字列に一致しますが、デフォルトの貪欲なパターンはできるだけ多くの文字列と一致します。たとえば、文字列ooooの場合、「o+?」は単一のoと一致し、「o+」はすべての「o」と一致します。 |
| 。 | /nを除く単一の文字を一致させます。 「/n」を含む任意の文字を一致させるには、「[./N]」のようなパターンを使用します。 |
| (パターン) | パターンをマッチして、この一致を取得します。取得した一致は、VBScriptのサブマッチコレクションを使用して、JScriptの$ 9属性を使用して、生成された一致コレクションから取得できます。括弧を合わせるには、 '/('または '/)'を使用します。 |
| (?:パターン) | マッチパターンですが、一致する結果は得られません。つまり、これは非ゲットの一致であり、将来の使用のために保存されません。これは、パターンのさまざまな部分を組み合わせるために使用または文字(|)を使用する場合に役立ちます。たとえば、「産業(?:y | ies)は、「産業|産業」よりも単純な表現です。 |
| (?=パターン) | 事前チェックを前に進め、弦の一致パターンの先頭でルックアップ文字列を一致させます。これは非ゲットの試合です。つまり、後で使用するために試合を取得する必要はありません。たとえば、「Windows(?= 95 | 98 | NT | 2000)」は、Windows 2000のWindowsに一致させることができますが、Windows 3.1のWindowsは一致しません。プレチェックはキャラクターを消費しません。つまり、試合が発生した後、次の試合の検索は、プレチェックを含むキャラクターの後ではなく、最後の試合の直後に始まります。 |
| (?!パターン) | ネガティブLookaheadは、文字列がパターンを一致させない任意の時点で検索文字列と一致します。これは非ゲットの試合です。つまり、後で使用するために試合を取得する必要はありません。たとえば、「Windows(?!95 | 98 | NT | 2000)」は、Windows 3.1のWindowsに一致させることができますが、Windows 2000のWindowsは一致しません。プレチェックはキャラクターを消費しません。つまり、試合が発生した後、次の試合検索は、プレチェックを含むキャラクターの後ではなく、最後の試合の直後に始まります |
| x | | xまたはyを一致させます。たとえば、「Z | Food」はZまたは食品に一致する可能性があります。 '(z | f)ood' 'ZoodまたはFoodと一致します。 |
| [ xyz ] | キャラクターコレクション。含まれる文字を一致させます。たとえば、「[abc]」は平野で「a」に一致する可能性があります。 |
| [^ xyz ] | ネガティブ値の文字のコレクション。含まれていない文字を一致させます。たとえば、「[^abc]」は平野の「p」に一致することがあります。 |
| [ AZ ] | 文字範囲。指定された範囲の任意の文字を一致させます。たとえば、「[az]」は、「z」a 'a' a 'a'の任意の小文字のアルファベット文字に一致します。 |
| [^ az ] | 負の値文字範囲。指定された範囲内にない任意の文字を一致させます。たとえば、 '[^az]'は、「z '」の範囲にない任意の文字と一致させることができます。 |
| /b | 単語の境界を一致させます。つまり、単語と空間の間の位置を意味します。たとえば、「er/b」は「er」と一致することはありませんが、動詞では「er」ではなく。 |
| /b | 単語以外の境界に一致します。 「er/b」は動詞の「er」に一致する可能性がありますが、決して「er」と一致することはできません。 |
| /c x | xで指定されたコントロール文字と一致します。たとえば、 /cmはコントロールMまたはキャリッジリターンに一致します。 xの値は、AZまたはAZの1つでなければなりません。それ以外の場合は、Cを元の「C」文字として扱います。 |
| /d | 数値文字を一致させます。 [0-9]に相当します。 |
| /d | 数字以外の文字を一致させます。 [^0-9]に相当します。 |
| /f | ページブレイクを一致させます。 /x0cおよび /clに相当します。 |
| /n | 新しいライン文字を一致させます。 /x0aおよび /cjに相当します。 |
| /r | キャリッジリターン文字を一致させます。 /x0dおよび /cmに相当します。 |
| /s | スペース、タブ、ページブレイクなど、ホワイトスペースの文字を一致させます。 [/f/n/r/t/v]に相当します。 |
| /s | ホワイトスペース以外の文字を一致させます。 [^/f/n/r/t/v]に相当します。 |
| /t | タブ文字を一致させます。 /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 | オクタルエスケープ値または後方参照を識別します。少なくともnが/ nの前にサブ発現を取得した場合、 nは後方参照です。それ以外の場合、 nがオクタル数(0〜7)の場合、 nはオクタルエスケープ値です。 |
| / nm | オクタルエスケープ値または後方参照を識別します。少なくともnmが得られる場合、サブ発現の前に少なくともnm / nmの前に、 nmは後方参照です。 / nmの前に少なくともnフェッチがある場合、 nは後方参照に続いてリテラルmが続きます。以前の条件のいずれも満たされていない場合、 NとMの両方がオクタル数(0〜7)の場合、 / nmはOctal Escaw値nmと一致します。 |
| / nml | nがオクタル数(0-3)で、 mとlが両方のオクタル数(0〜7)である場合、octalエスケープ値NMLが一致します。 |
| /u n | NはNを一致させます。nは、4匹の16進数桁で表されるユニコード文字です。たとえば、 /u00a9は著作権シンボル(?)と一致します。 |
正規表現を作成した後、数学的な式のように評価できます。つまり、左から右、優先順位で評価できます。
次の表には、最も優先度から最低の優先度までのさまざまな正規表現演算子の優先順位を示します。
| オペレーター | 説明する |
|---|---|
| / | 脱出シンボル |
| ()、(?:)、(?=)、[] | ブレースと四角い括弧 |
| *、 +、?、{n}、{n、}、{n、m} | 予選 |
| ^、$、 / anymetacharacter | 位置と順序 |
| | | または操作します |