JavaScriptの正規表現を簡潔にまとめ_基礎知識

WBOY
リリース: 2016-05-16 16:53:09
オリジナル
1130 人が閲覧しました

1. 正規表現の定義方法

正規表現を定義するには、コンストラクター定義と正規表現リテラル定義の 2 つの方法があります。例:

コードをコピー コードは次のとおりです。
var reg1 = new RegExp('d{ 5, 11} '); // コンストラクターを通じて
を定義します var reg2 = /d{5, 12}/; // 直接量を通じて
を定義します

正規表現リテラル文字
o: NUL 文字 (u0000)
t: タブ文字 (u0009)
n: 改行文字 (u000A)
v: 垂直タブ文字 (u000B)
f: 改ページ文字 (u000C)
r: 復帰文字 (u000D)
xnn: 16 進数 nn で指定されるラテン文字 たとえば、x0A はと等価です。
uxxxx: 16 進数 xxxx で指定された Unicode 文字。たとえば、u0009 は
🎜> と同等です。 ^: 文字列の先頭と一致します。複数行の検索では、行の先頭と一致します。
$ : 文字列の末尾と一致します。複数行検索の場合は、行の末尾と一致します。
b: 単語と一致します。 境界とは、要するに、文字 w と W の間の位置、または文字間の位置です。 w および文字列の先頭または末尾 ([b] はバックスペース文字と一致します)
B: 単語境界以外の位置と一致します
(?=p): ゼロ幅の正の先読みアサーション。 p に一致する文字は次の文字に一致しますが、p に一致する文字は含まれません
(?!p): ゼロ幅の負の先読みをアサートし、次の文字列が p
に一致しないことを要求します
正規表現文字クラス
[...]: 角括弧内の任意の文字
[^...]: 角括弧内ではない 角括弧内の任意の文字
.: 改行およびその他の Unicode 行終端文字を除く任意の文字
w: 任意ASCII 文字で構成される単語 ([a-zA-Z0-9]
に相当) W: ASCII 文字で構成されない単語 ([^a-zA-Z0-9]
に相当) s: 任意Unicode 空白文字
S: 任意の非 Unicode 空白文字、w と S に注意してください 異なる
d: 任意の ASCII 数値、[0-9]
D: ASCII 数字を除く任意の文字、同等to [^0-9]
[b]: バックスペース 直接数量 (特殊な場合)
正規表現の繰り返し文字構文
{n, m}: 前の項目と少なくとも n 回一致しますが、そうではありませんm 回以上
{n, }: 前の項目と n 回以上一致
{n}: 前の項目と n 回一致
?: 前の項目と 0 回または 1 回一致。前の項目はオプションです。{0, 1}
に相当します。: 前の項目に 1 回以上一致します。{1, }
に相当します。 *: 前の項目に 0 回以上一致します。{0, 1} に相当します。 }
正規表現 式の選択、グループ化、参照文字
|: 選択、記号の左側または右側の部分式と一致
(...): 組み合わせ、複数の項目を 1 つのユニットに結合すると、このユニットは「*」、「」、「?」、「|」などの記号で変更でき、このグループに一致する文字列を後で使用するために記憶できます
(? : ...): 組み合わせのみ、項目を 1 つのユニットに結合しますが、シャッフル
に一致する文字を記憶しません。 n: n 番目のグループの最初に一致した文字に一致します。グループは括弧内の部分式です (場合によっては)。入れ子にすることもできます)、グループ インデックスは左から右への左括弧の数です。「(?:」の形式でグループ化はエンコードされません
正規表現修飾子
i: 大文字と小文字を区別しないマッチングを実行します
g: グローバル一致を実行します。つまり、最初の一致を見つけた後に停止するのではなく、すべての一致を検索します。
m: 複数行一致モード、^ は行の先頭と文字列の先頭に一致し、$ は行の終わりと文字列の終わり
パターン マッチングのための文字列メソッド
search(): そのパラメーターは正規表現で、最初に一致した部分文字列の開始位置を返します。 -1が返されます。 search() のパラメータが正規表現でない場合、search() は修飾子 g を無視するため、グローバル検索をサポートしません。例:

コードをコピー コードは次のとおりです:

var s = "JavaScript".search(/script/i) // s = 4

;

replace(): 取得と置換を実行するために使用されます。 2 つのパラメータを受け取ります。1 つ目は正規表現で、2 つ目は置換される文字列です。修飾子 g が正規表現に設定されている場合は、グローバル置換が実行されます。それ以外の場合は、最初に一致した部分文字列のみが置換されます。最初の引数が正規表現でない場合、文字列は正規表現に変換されずに直接検索されます。例:

コードをコピー コードは次のとおりです。
var s = "JavaScript".replace( /java/gi , "スクリプト") // s = スクリプト スクリプト

Match(): そのパラメータは正規表現です。そうでない場合は、RegExp を通じて変換され、一致する結果で構成される配列が返されます。修飾子 g が設定されている場合、グローバル一致が実行されます。例:

コードをコピー コードは次のとおりです:
var d = '55 ff 33 hh 77 tt'.match (/d /g); // d = ["55", "33", "77"]

split(): このメソッドは、それを呼び出す文字列を部分文字列の配列に分割するために使用されます。使用される区切り文字は、split() のパラメータであり、そのパラメータは正規表現にすることもできます。例:

コードをコピー コードは次のとおりです:
var d = '123,31,453,645'。 split(', '); // d = ["123", "31", "453", "645"]
var d = '21, 123, 44, 64, 67, 3'.split( /s*, s*/) // d = ["21", "123", "44", "64", "67", "3"]

2. RegExp オブジェクト
各 RegExp オブジェクトには 5 つの属性があります。ソース属性は、正規表現のテキストを含む読み取り専用の文字列です。グローバル属性は、この正規表現に修飾子 g が付いているかどうかを示す読み取り専用のブール値です。属性ignoreCaseは、この正規表現に修飾子iが付いているかどうかを示す読み取り専用のブール値です。 multiline 属性は、この正規表現に修飾子 m が付いているかどうかを示す読み取り専用のブール値です。 lastIndex 属性は、読み取りおよび書き込み可能な整数です。一致するパターンに g 修飾子がある場合、この属性は文字列全体内の次の検索の開始位置を格納します。
RegExp オブジェクトには 2 つのメソッドがあります。 exec() のパラメータは文字列であり、その機能は match() と似ています。exec() メソッドは指定された文字列に対して正規表現を実行します。つまり、文字列内で一致検索を実行します。一致が見つからない場合は、null が返されます。一致が見つかった場合は、この配列の最初の要素に正規表現に一致する文字列が含まれ、残りの要素は一致した部分文字列です。正規表現に修飾子 g があるかどうかを判断すると、同じ配列が返されます。 exec() を呼び出す正規表現オブジェクトに修飾子 g がある場合、現在の正規表現オブジェクトの lastIndex プロパティを、一致した部分文字列のすぐ隣の文字位置に設定します。同じ正規表現を使用して exec() を再度呼び出すと、 lastIndex 属性で示された文字列からの取得が開始され、一致する結果が見つからなかった場合は、lastIndex が 0 にリセットされます。例:

コードをコピー コードは次のとおりです。
var p = /Java/g;
var text = "JavaScript は Java よりも楽しいです!"
var r;
while((r = p.exec(text)) != null) {
console.log(r, ' lastIndex: ' p .lastIndex);
}

もう 1 つのメソッドは test() で、パラメータは文字列です。正規表現の一致する結果が含まれている場合は、test() を使用して true を返し、それ以外の場合は false を返します。例:

コードをコピー コードは次のとおりです。
var p = /java/i;
p.test('javascript') // true
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート