1。正規表現を定義する方法
正規表現を定義するには、コンストラクターの定義と正規表現の直接的な数量定義の2つの方法があります。例えば:
次のようにコードをコピーします:var reg1 = new regexp( '/d {5、11}');
var reg2 = // d {5、12}/
正規表現は文字を直接測定します
/o:nul文字(/u0000)
/T:タブ文字(/u0009)
/n:Newline Character(/u000a)
/v:垂直タブ文字(/u000b)
/f:ページ変更(/u000c)
/R:キャリッジリターン文字(/u000d)
/XNN:たとえば、 /x0aは /nに相当する16進数nnで指定されたラテン文字
/uxxxx:たとえば、 /u0009など、16進数xxxxで指定されたユニコード文字は /tに相当します
/CX:制御文字 ^x、たとえば、 /cjはラインブレイク /nと同等です /n
正規表現アンカー文字
^:文字列の先頭に合わせて、マルチライン検索で、行の先頭に一致します
$:文字列の終わりをマルチライン検索で、行の終わりを一致させます
/B:単語の境界を略して、文字 /wと /wの間に、または文字列の開始または端の間にあります([ /b]はバックスペースシンボルと一致します。
/B:非単語境界の位置に一致します
(?= p):pを一致させるにはゼロ幅のフォワードアサーションが必要ですが、pに一致する文字を含めないには必要ありません
(?!p):ゼロ幅の負の方向は最初に主張し、次の文字列がpと一致しないことを要求する
正規表現のキャラクタークラス
[...]:四角い括弧内のキャラクター
[^...]:四角い括弧内ではないキャラクター
。:ラインが破損し、その他のユニコードラインターミネーターを除くキャラクター
/W:ASCII文字で構成される単語、[A-ZA-Z0-9]に相当します
/W:ASCII文字で構成されていない単語は[^a-za-z0-9]に相当します
/s:任意のユニコードホワイトスペース
/s:非unicode空白文字、 /wと /sは異なることに注意してください
/D:[0-9]に相当するASCII番号
/D:[^0-9]に相当するASCII数を除くキャラクター
[/b]:バックスペースの直接数量(特別ケース)
正規表現のために文字構文を繰り返します
{n、m}:少なくともn回前の項目を一致させますが、m倍以下
{n、}:以前のアイテムn回以上に一致します
{n}:以前の項目n回を一致させます
?:前の項目0または1時間に一致します。つまり、前のアイテムはオプションで、{0、1}に相当します。
+:前の項目を1回以上一致させ、{1、}に相当します
*:{0、}に相当する前のアイテム0以上を一致させます
正規表現の選択、グループ化、参照文字
|:左側のサブエクスペッションを選択するか、右側のサブエグエクストレーションを選択します
(…):「*」、「+」、「|」などのシンボルで変更できるユニットに組み合わされ、その後の文字列に一致するキャラクターを覚えています使用
(?:...):アイテムをユニットに組み合わせますが、シャッフルに合ったキャラクターを覚えていません
/n:グループが初めて一致するキャラクターに一致します。フォームグループはエンコードされていません
正規表現修飾子
I:ケース感受性マッチングを実行します
G:最初の試合を見つけた後に停止するのではなく、グローバルマッチを実行して、すべての試合を見つけてください
M:マルチラインマッチングパターン、 ^行の始まりと文字列の始まりに一致し、$は行の終わりと文字列の端に一致します
パターンマッチングの文字列メソッド
search():その引数は正規表現であり、最初のサブストリングの開始位置を返してそれに一致し、一致するサブストリングがない場合は-1を返します。検索()のパラメーターが正規表現ではない場合、最初にregexpコンストラクターを介して正規式に変換されます。Search()は、修飾子Gを無視するため、グローバル検索をサポートしません。のように:
コードコピーは次のとおりです。
var s = "javascript" .search(/script/i);
交換():検索と交換の実行に使用されます。 2つのパラメーターを受信します。1つは正規表現、2つ目は交換する文字列です。正規表現が設定されている場合、グローバルな置換が実行されます。そうしないと、一致の最初のサブストリングのみが置き換えられます。最初の引数が正規表現ではない場合は、正規表現に変換する代わりに、文字列を直接検索します。のように:
次のようにコードをコピーします。VARS= "JavaScript" .Replace(/java/gi、 "Script");
Match():その引数は正規表現ではない場合は、regexpを介して変換され、一致する結果の配列を返します。修飾子Gが設定されている場合、グローバルマッチングが実行されます。のように:
コードを次のようにコピーします:var d = '55 ff 33 hh 77 tt'.match(// d+/g);
split():このメソッドは、使用される区切り文字がsplit()のパラメーターで構成される文字列を分割するために使用され、そのパラメーターも正規表現を作成できます。のように:
コードを次のようにコピーします:var d = '123,31,453,645'.split('、 ');
var d = '21、123、44、64、67、3'.split(// s*、/s*/); 、「67」、「3」]
2。regexpオブジェクト
各regexpオブジェクトには5つのプロパティがあります。プロパティソースは、正規表現のテキストを含む読み取り専用文字列です。プロパティグローバルは、正規表現に修飾子gがあるかどうかを示す読み取り専用ブール値です。プロパティIgnoreCaseは、正規表現に修飾子iがあるかどうかを示す読み取り専用ブール値です。プロパティマルチラインは、正規表現に修飾子mがあるかどうかを示す読み取り専用ブール値です。 Property LastIndexは、読みやすく筆記可能な整数です。一致するパターンにGモディファイ剤がある場合、このプロパティは次の検索の開始位置を文字列全体に保存します。
regexpオブジェクトには2つの方法があります。 exec()パラメーターは文字列であり、その関数はmatch()に似ています。一致が見つかった場合、一致が見つかった場合、この配列の最初の要素は正規表現に一致します。正規表現に修飾子Gがあるかどうかに関係なく、同じ配列が返されます。 exec()を呼び出す正規表現オブジェクトに修飾子Gがある場合、現在の正規表現オブジェクトのlastIndexプロパティを一致するサブストリングの横にある文字位置に設定します。同じ正規表現がexec()を2回目に呼び出すと、lastIndexプロパティで示された文字列から取得し始め、exec()が一致する結果が見つからない場合、lastindexを0にリセットします。のように:
コードコピーは次のとおりです。varp = /java /g;
var text = "JavaScriptはJavaよりも楽しいです!"
var r;
while((r = p.exec(text))!= null){
console.log(r、 'lastindex:' + p.lastindex);
}
別のメソッドは、その引数を使用して、特定の文字列の一致した結果を含めます。のように:
コードコピーは次のとおりです。varp = /java /i;
p.test( 'javascript');