ES6-正規表現
正規表現は、文字のパターンを記述するオブジェクトです。正規表現はしばしば省略されます。regex」または「regexp」。
JavaScript RegExp classは正規表現を表し、StringとRegExpはどちらも、正規表現を使用してテキストに対して強力なパターンマッチングおよび検索と置換の機能を実行するメソッドを定義します。
正規表現は次のように定義できます-
var pattern = new RegExp(pattern, attributes);
OR
var pattern = /pattern/attributes;
属性には、次の値の任意の組み合わせを指定できます。
シニア番号 | 属性と説明 |
---|---|
1 | G グローバルマッチ |
2 | I ケースを無視する |
3 | M マルチライン; 開始文字と終了文字(^と$)を、入力文字列全体の最初または最後だけでなく、複数の行で機能するものとして扱います(つまり、各行の最初または最後に一致します(\ nまたは\ rで区切られます)。 ) |
4 | U Unicode; パターンをUnicodeコードポイントのシーケンスとして扱います |
5 | Y 粘着性; ターゲット文字列内のこの正規表現のlastIndexプロパティによって示されるインデックスからのみ一致します(以降のインデックスからは一致しません)。 |
正規表現の作成
ブラケット
角かっこ([])は、正規表現のコンテキストで使用される場合に特別な意味を持ちます。これらは、文字の範囲を見つけるために使用されます。
シニア番号 | 表現と説明 |
---|---|
1 | [...] 角かっこで囲まれた任意の1文字 |
2 | [^...] 角かっこで囲まれていない任意の1文字 |
3 | [0-9] 0から9までの任意の10進数に一致します |
4 | [a-z] 小文字の任意の文字に一致します a 小文字を介して z |
5 | [A-Z] 大文字の任意の文字に一致します A 大文字のZを介して |
6 | [a-Z] 小文字の任意の文字に一致します a 大文字のZを介して |
上記の範囲は一般的なものです。範囲[0-3]を使用して0から3の範囲の10進数に一致させることも、範囲[bv]を使用してbからvの範囲の小文字に一致させることもできます。
定量化子
括弧で囲まれた文字シーケンスと単一文字の頻度または位置は、特殊文字で表すことができます。各特殊文字には特定の意味合いがあります。ザ・+, *, ?, そして $ フラグはすべて文字シーケンスに従います。
シニア番号 | 表現と説明 |
---|---|
1 | p+ 少なくとも1つを含む任意の文字列に一致します p。 |
2 | p* ゼロ個以上を含む任意の文字列に一致します p's |
3 | p? 1つ以上を含む任意の文字列に一致します p's |
4 | p{N} のシーケンスを含む任意の文字列に一致します N p's |
5 | p{2,3} 2つまたは3つのシーケンスを含む任意の文字列に一致します p's |
6 | p{2, } 少なくとも2つのシーケンスを含む任意の文字列に一致します p's |
7 | p$ との任意の文字列に一致します p それの終わりに |
8 | ^p との任意の文字列に一致します p それの初めに |
9 | [^a-zA-Z] からの範囲の文字を含まない任意の文字列に一致します a 使って z そして A 使って Z |
10 | p.p を含むすべての文字列に一致します p、その後に任意の文字が続き、次に別の文字が続きます p |
11 | ^.{2}$ 正確に2文字を含む任意の文字列に一致します |
12 | <b>(.*)</b> <b>と</ b>で囲まれたすべての文字列に一致します |
13 | p(hp)* を含むすべての文字列に一致します p シーケンスの0個以上のインスタンスが続く hp |
リテラル文字
シニア番号 | キャラクターと説明 |
---|---|
1 | Alphanumeric 自体 |
2 | \0 ヌル文字(\ u0000) |
3 | \t タブ(\ u0009) |
4 | \n 改行(\ u000A) |
5 | \v 垂直タブ(\ u000B) |
6 | \f フォームフィード(\ u000C) |
7 | \r キャリッジリターン(\ u000D) |
8 | \xnn 16進数で指定されたラテン文字 nn; たとえば、\ x0Aはと同じです \n |
9 | \uxxxx 16進数で指定されたUnicode文字 xxxx; たとえば、\ u0009はと同じです\t |
10 | \cX 制御文字^ X; たとえば、\ cJは改行文字と同等です\n |
メタ文字
A meta-character は、組み合わせに特別な意味を与えるように機能するバックスラッシュが前に付いた単なるアルファベット文字です。
たとえば、を使用して多額のお金を検索することができます '\d'メタ文字:/([\ d] +)000 /。ここに、\d 数字の任意の文字列を検索します。
次の表に、PERLスタイルの正規表現で使用できるメタ文字のセットを示します。
シニア番号 | キャラクターと説明 |
---|---|
1 | . 1文字 |
2 | \s 空白文字(スペース、タブ、改行) |
3 | \S 空白以外の文字 |
4 | \d 数字(0-9) |
5 | \D 数字以外 |
6 | \w 単語文字(az、AZ、0-9、_) |
7 | \W 単語以外の文字 |
8 | [\b] 文字通りのバックスペース(特殊な場合) |
9 | [aeiou] 指定されたセットの1文字に一致します |
10 | [^aeiou] 指定されたセット外の単一の文字に一致します |
11 | (foo|bar|baz) 指定された選択肢のいずれかに一致します |
RegExpプロパティ
シニア番号 | プロパティと説明 |
---|---|
1 | RegExp.prototype.flags RegExpオブジェクトのフラグを含む文字列 |
2 | RegExp.prototype.global 文字列内のすべての可能な一致に対して正規表現をテストするか、最初の一致に対してのみテストするか |
3 | RegExp.prototype.ignoreCase 文字列で一致を試行するときに大文字と小文字を区別するかどうか |
4 | RegExp.prototype.lastIndex RegExpオブジェクトの読み取り/書き込みプロパティかどうか。 |
5 | RegExp.prototype.multiline 複数行にわたる文字列を検索するかどうか |
6 | RegExp.prototype.source パターンのテキスト |
RegExpメソッド
シニア番号 | 方法と説明 |
---|---|
1 | RegExp.prototype.exec() 文字列パラメータで一致するものの検索を実行します |
2 | RegExp.prototype.test() 文字列パラメータの一致をテストします |
3 | RegExp.prototype.match() 指定された文字列との照合を実行し、照合結果を返します |
4 | RegExp.prototype.replace() 指定された文字列の一致を新しい部分文字列に置き換えます |
5 | RegExp.prototype.search() 指定された文字列で一致するものを検索し、文字列で見つかったパターンのインデックスを返します |
6 | RegExp.prototype.split() 文字列を部分文字列に分割することにより、指定された文字列を配列に分割します |
7 | RegExp.prototype.toString() 指定されたオブジェクトを表す文字列を返します。theObject.prototype.toString()メソッドをオーバーライドします |