g はグローバルマッチを表します
m は複数の行が一致することを意味します
i は大文字と小文字を区別しないマッチングを表します
^ は入力文字列の先頭と一致します
$ は入力文字列の末尾と一致します
* 直前の部分式と 0 回以上一致します。{0,} と同等です。
+ 前の部分式と 1 回以上一致します。{1,} と同等です。
? この文字の後に他の修飾子 (*、+、?、{n}、{n,}、{n, m}) が続く場合、前の部分式に 0 回または 1 回一致します。パターンは貪欲ではありません。非貪欲モードは検索文字列の可能な限り少ない部分と一致しますが、デフォルトの貪欲モードは検索文字列の可能な限り多くの部分と一致します。たとえば、文字列「oooo」の場合、「o+?」は単一の「o」に一致しますが、「o+」はすべての「o」に一致します。
d は [0-9] の数字と一致します。
D は、[^0-9] と同等です。
w 、「[A-Za-z0-9_]」に相当
W は、「[^A-Za-z0-9]」に相当する任意の非単語文字に一致します。
s は、スペース、タブ、フォーム フィードなどを含む任意の空白文字と一致します。[fnrtv] と同等です。
S は空白以外の文字と一致します。[^frntv] と同等です。
b は、単語とスペースの間の位置である単語境界に一致します。
B は単語以外の境界に一致します。
(パターン) パターンと一致し、一致を取得します。取得された一致は、VBScript の SubMatches コレクションまたは JScript の $0 ~ $9 プロパティを使用して、生成された Matches コレクションから取得できます。
(?:pattern) はパターンに一致しますが、一致結果は取得されません。これは、これは非取得一致であり、後で使用するために保存されないことを意味します。これは、「または」文字 (|) を使用してパターンの一部を結合する場合に便利です。たとえば、「industr(?:y|ies)」は「industry|industries」より短い式です。
(?=pattern) 前方参照。文字列一致パターンの先頭にある検索文字列と一致します。これは非フェッチ一致です。つまり、後で使用するために一致をフェッチする必要はありません。たとえば、「Windows (?=95|98|NT|2000)」は、「Windows 2000」の「Windows」には一致しますが、「Windows 3.1」の「Windows」には一致しません。プリフェッチでは文字は消費されません。つまり、一致が発生した後、次の一致の検索は、プリフェッチを含む文字の後に開始されるのではなく、最後の一致の直後に開始されます。
(?!pattern) 負の先読みは、パターンに一致しない文字列の先頭の検索文字列と一致します。これは非フェッチ一致です。つまり、後で使用するために一致をフェッチする必要はありません。たとえば、「Windows (?!95|98|NT|2000)」は、「Windows 3.1」の「Windows」と一致しますが、「Windows 2000」の「Windows」とは一致しません。事前チェックでは文字は消費されません。つまり、一致が発生した後、
事前チェックを含む文字の後の2 ~ 4 個の漢字
プログラム コードの
一致を開始するのではなく、最後の一致の直後に次の一致の検索が開始されます。
/^[u4e00-u9fa5]{2,4}$/g;
6 ~ 18 (文字、数字、アンダースコア) の文字
プログラム コード
と一致します。
/^w{6,18}$/;
プログラムコード
/^[A-Za-z0-9_]$/;
HTMLタグの
プログラムコード
と一致する
/<[^>]*>|</[^>]*>/gm;
プログラムコード
/</?[^>]+>/gm;
左右のスペースの
プログラムコード
を一致させる
/(^s*)|(s*$)/g;
優先順位(高いものから低いものへ)
エスケープ文字
()、(?:)、(?=)、[] 丸括弧と角括弧
* 、 + 、 ? 、 {n} 、 {n,} 、 {n,m} 修飾子
^ , [蒸気:内容]nbsp;
| 「or」演算は
2 つの連続する同一の単語
プログラム コード
と一致します。
/b([az]+) 1b/gim ;
この例では、部分式は括弧内の各項です。
キャプチャされた式は、「[az]+」で指定された 1 つ以上のアルファベット文字で構成されます。
正規表現の 2 番目の部分は、以前にキャプチャされた部分一致への参照であり、追加された式によって一致する単語の 2 番目の出現です。
'1' は、最初の部分一致を指定するために使用されます。単語境界メタキャラクターにより、個々の単語のみが確実に検出されます。
これを行わないと、「発行された」または「これは」などの語句が式によって誤って認識されてしまいます。
プログラムコード
var ss = "ガソリンの値段は上がっていますか?. ガソリンの値段は上がっていますか?.";
var re = /b([az]+) 1b/gim;
var rv = ss.replace(re,"$1");
document.write(rv) //出力「ガソリンの値段は上がりますか?. ガソリンの値段は上がりますか?.」
プログラムコード
/bCha/ は
、単語境界の後に出現するため、単語「Chapter」の最初の 3 文字と一致します。
プログラムコード
/terb/
は単語境界の前にあるため、単語「Chapter」の「ter」と一致します。
プログラムコード
/Bapt/ は
'Chapter' の途中にあるため 'apt' と一致しますが、単語境界の後であるため 'aptitude' の 'apt' とは一致しません
*/
URLアドレス一致
プログラムコード
/(w+)://([^/:]+)(:d*)?([^#]*)/
次の URI をプロトコル (ftp、http など)、ドメイン名に分解します。アドレスとページ/パス:
http://msdn.microsoft.com:80/scripting/default.htm
最初の追加の部分式は、Web アドレスのプロトコル部分をキャプチャするために使用されます。この部分式は、コロンと 2 つのスラッシュが前にある任意の単語と一致します。 2 番目の追加の部分式は、アドレスのドメイン アドレスを取得します。この部分式は、「^」、「/」、または「:」文字を含まない任意の文字シーケンスと一致します。 3 番目の追加の部分式は、Web サイトのポート番号 (指定されている場合) を取得します。この部分式は、コロンが後に続く 0 個以上の数値と一致します。最後に、4 番目の追加の部分式は、Web アドレスで指定されたパスおよび/またはページ情報を取得します。この部分式は、「#」またはスペースを除く 1 つ以上の文字と一致します。
正規表現が上記の URI に適用される場合、部分一致には次のものが含まれます。
RegExp.$1 には "http" が含まれます
RegExp.$2 には "msdn.microsoft.com" が含まれます
RegExp.$3 には ":80"
RegExp.$4
が含まれます 方法1
「/scripting/default.htm」
正規表現が含まれます。
テスト メソッドは、検索対象の文字列にパターンが存在するかどうかを示すブール値を返します。
グローバル RegExp オブジェクトのプロパティは変更されません
。
テスト方法の
例1
http://www.knowsky.com/
プログラムコード
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
var flag=reg.test(url);
フラグ // true を返す
RegExp.$1 //「http」を返します
RegExp.$2 //「msdn.microsoft.com」を返します
RegExp.$3 //「:80」を返します
$egExp.$4 //「/scripting/default.html」を返します
検索メソッドもテスト メソッドもグローバル RegExp オブジェクトを更新できないため、RegExp.input、RegExp.index、および RegExp.lastIndex は未定義
2 を返します。 match メソッドは
正規表現パターンを使用して文字列の検索を実行し、次の結果を返します。配列として検索します。
プログラムコード
stringObj.match(rgExp)
match メソッドは一致するものが見つからない場合、null を返します。一致が見つかった場合は配列が返され、グローバル RegExp オブジェクトのプロパティが一致を反映するように更新されます。
match メソッドによって返される配列には、input、index、lastIndex の 3 つの属性があります。
Input プロパティには、検索される文字列全体が含まれます。
Index プロパティには、検索文字列全体内の一致する部分文字列の位置が含まれます。
LastIndex プロパティには、最後に一致した最後の文字の次の位置が含まれます。
グローバル フラグ (g) が設定されていない場合、配列の要素 0 には一致全体が含まれ、要素 1 ~ n には一致で発生したサブ一致が含まれます。
これは、グローバル フラグを設定しない exec メソッドと同等です。グローバル フラグが設定されている場合、要素 0 ~ n にはすべての一致が含まれます
。 example1 (グローバル フラグは設定されていません)
プログラムコード
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
var myArray=url.match(reg);
RegExp.$1 //「http」を返します
RegExp.$2 //「msdn.microsoft.com」を返します
RegExp.$3 //「:80」を返します
$egExp.$4 //「/scripting/default.html」を返します
myArray //Return myArray[0]=" http://msdn.microsoft.com:80/scripting/default.html ",
myArray[1]="http",myArray[2]="msdn.microsoft.com",
myArray[3]=":80",myArray[4]="/scripting/default.html"
myArray.input //Return "http://msdn.microsoft.com:80/scripting/default.html"
myArray.index //0を返す
myArray.lastIndex //戻り値 51
例2 (グローバルフラグセット)
プログラムコード
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/g;
var myArray=url.match(reg);
RegExp.$1 //「http」を返します
RegExp.$2 //「msdn.microsoft.com」を返します
RegExp.$3 //「:80」を返します
$egExp.$4 //「/scripting/default.html」を返します
myArray //Return myArray=" http://msdn.microsoft.com:80/scripting/default.html "
myArray.input //Return "http://msdn.microsoft.com:80/scripting/default.html"
myArray.index //0を返す
myArray.lastIndex //戻り値 51
グローバルフラグを設定した後の違いに注意してください
グローバル フラグ (g) が設定されていない場合、配列の要素 0 には一致全体が含まれ、要素 1 ~ n には一致で発生したサブ一致が含まれます。
これは、グローバル フラグを設定しない exec メソッドと同等です。グローバル フラグが設定されている場合、要素 0 ~ n にはすべての一致が含まれます
。 3. exex メソッドは、
正規表現パターンを使用して文字列の検索を実行し、検索結果を含む配列を返します。
プログラムコード
rgExp.exec(str)
exec メソッドは一致するものが見つからない場合、null を返します。
一致するものが見つかった場合、exec メソッドは配列を返し、グローバル RegExp オブジェクトのプロパティが一致を反映するように更新されます。
配列の要素 0 には完全一致が含まれ、要素 1 ~ n には一致で発生した部分一致が含まれます。
これは、グローバル フラグ (g) を設定しない match メソッドと同等です。
正規表現にグローバル フラグが設定されている場合、exec は lastIndex の値で示される位置の検索を開始します。
グローバル フラグが設定されていない場合、exec は lastIndex の値を無視し、文字列の先頭から検索します。
exec メソッドによって返される配列には、input、index、lastIndex という 3 つの属性があります。
Input プロパティには、検索される文字列全体が含まれます。
Index 属性には、検索文字列全体内の一致した部分文字列の位置が含まれます。
LastIndex プロパティには、一致する最後の文字の次の位置が含まれます。
例1 (グローバルフラグが設定されていない)
プログラムコード
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
var myArray=reg.exec(url);
RegExp.$1 //「http」を返します
RegExp.$2 //「msdn.microsoft.com」を返します
RegExp.$3 //「:80」を返します
$egExp.$4 //「/scripting/default.html」を返します
myArray //Return myArray[0]=" http://msdn.microsoft.com:80/scripting/default.html ",
myArray[1]="http",myArray[2]="msdn.microsoft.com",
myArray[3]=":80",myArray[4]="/scripting/default.html"
myArray.input //Return "http://msdn.microsoft.com:80/scripting/default.html"
myArray.index //0を返す
myArray.lastIndex //戻り値 51
グローバルフラグ(g)が設定されていない場合、matchメソッドはexecメソッドと同じになります。
例2(グローバルフラグを設定する)
プログラムコード
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
var myArray=reg.exec(url);
RegExp.$1 //「http」を返します
RegExp.$2 //「msdn.microsoft.com」を返します
RegExp.$3 //「:80」を返します
$egExp.$4 //「/scripting/default.html」を返します
myArray //Return myArray[0]=" http://msdn.microsoft.com:80/scripting/default.html ",
myArray[1]="http",myArray[2]="msdn.microsoft.com",
myArray[3]=":80",myArray[4]="/scripting/default.html"
myArray.input //Return "http://msdn.microsoft.com:80/scripting/default.html"
myArray.index //0を返す
myArray.lastIndex //戻り値 51
4 検索メソッドは、
正規表現の検索内容に一致する最初の部分文字列の位置を返します。
プログラムコード
stringOjb.search(rgExp)
検索方法は、対応する一致が存在するかどうかを示します。
一致が見つかった場合、検索メソッドは文字列の先頭からの一致のオフセットを示す整数値を返します。
一致するものが見つからない場合は、-1 が返されます。
例1
プログラムコード
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
var flag=url.search(reg);
フラグ //0 を返す
RegExp.$1 //「http」を返します
RegExp.$2 //「msdn.microsoft.com」を返します
RegExp.$3 //「:80」を返します
$egExp.$4 //「/scripting/default.html」を返します
検索メソッドもテスト メソッドもグローバル RegExp オブジェクトを更新できないため、RegExp.input、RegExp.index、および RegExp.lastIndex は未定義を返します。
5 replace メソッドは、
正規表現に基づいてテキストを置換した後の文字列のコピーを返し、
グローバル RegExp オブジェクトを更新できます。