javascript正規表現の基礎知識まとめ

4511 ワード

正規表現:文字列内の情報を検索、置換、抽出します.(コメントと空白はサポートされていません.1行に書かなければなりません.)正規表現の作成:1対のスラッシュの間に含まれる文字(直接量文法)例えば:var pattern=/s/.       //正則を作成して、アルファベットで終わるすべての文字列にマッチして、patternに値を与えます.
一、文字類:直接量の文字を単独で括弧内に入れると、文字類が構成されます.1つの文字クラスは、その中に含まれる任意の文字にマッチします.正規表現の文字クラス:[...]     四角い括弧内の任意の文字[^...]   四角い括弧内の任意の文字ではありません.          改行と他のユニック行の終端符以外の任意の文字\w       任意のASCII文字からなる単語は、[a-zA-Z 0-9]\Wに相当します.       ASCII以外の任意の単語は[^a-zA-Z 0-9]\sに相当します.        任意のUnicode空白符\S       任意の非ユニック空白文字\d       任意のASCII数字は[0-9]\Dに相当します.       ASCII以外の任意の数字は[^0-9][\b]に相当します.     チェックアウト直接量(特例)は、例えば:/[a,b,c]/      アルファベットa、b、cのいずれにもマッチしていることを表します.       任意の空白文字または数値にマッチすることを表します.
二、繰り返し:指定された文字の繰り返しを表すマーキング正規表現の重複文字文法:{n,m}     前のエントリに少なくともn回マッチしますが、m回{n,}を超えません.  前のエントリとn回以上一致します.{n}  前のエントリにn回マッチしますか?      前の項目に0回か1回を合わせます.つまり前の項目はオプションで、{0,1}+に相当します.     前の項目に1回以上マッチすると、{1、}*に相当します.      前の項目に0回以上マッチすると、{0,}
例えば:/\d{2,4}/    2~4個の数字を合わせる/\w{3}\d/   3つの単語とオプションの数字を正確に合わせます.
三、選択、グループと参照マッチングプログラム:左から右へ、左のマッチが一致したら、自動的に右のマッチを無視します.    |    選択された文字を分離するために使用されます.     文字列「ab」、「cd」または「ef」にマッチすることができます. /\d{3}|[a-z]{4}/      3桁の数字または4つの小文字にマッチする② ()1つの作用:個々の項目を合成するサブ表現の役割2:完全なモードでサブモードを定義し、正則表現が成功して目標文字列と一致した場合、対象文字列から括弧内のサブモードと一致する部分を抽出することができます.例えば:/[a-z]+\d+/検索します.小文字の後に1つ以上の数字が付いています.もし私たちが関心を持っているのは末尾の数字なら、モードの数字部分を括弧(/[a-z]+(\d)/)に入れることができます.このようにして、検索されたマッチングから数字を抽出することができます.3:同じ正規表現の後部に前のサブ表現の実現方法を導入することができます.「文字」の後に1桁または複数の数字を追加します.(この数字は、正の表現式では丸かっこのサブ表現を指定しています.)例えば、\1   参照は、最初の丸括弧のサブ表現注です.位置はカウントに参加する左括弧の位置に準じます.正規表現では、二重引用符で囲まれた内容に単引用符があることは許されません.逆も同じです.まとめ:|    選択します.マッチするのは左のサブ表現または右のサブ表現です.     いくつかの項目を一つのユニットに組み合わせます.   ユニットにアイテムを組み合わせるだけで、グループにマッチする文字は記憶されません.       n番目のグループと最初に一致した文字と一致します.グループは丸括弧のサブ表現で、グループインデックスは左から右の括弧の数です.
四、マッチする場所を指定します.アンカー:マッチが発生する合法的な場所を指定します.文字列の先頭に一致します. 文字列の最後\bにマッチして単語の境界(\wと\Wの間の位置)を合わせます.\Bは単語境界以外の位置にマッチします.
五、修繕子:修繕子は/以外に置くもので、二本/線の間にiが大局一致を区別せずに、最初のものを見つけたらm多行一致を停止するのではなく、全部のマッチングを見つけます.
六、モードマッチングのためのStringオブジェクトの方法の一つ:search()はこれと一致する位置パラメータを検索する.一つの正規表現は戻ります.最初のマッチするサブストリングの開始位置は、マッチするサブストリングが見つからない場合は、-1を返します.
<script>
    "javascript".search(/script/i);      //    4  
</script>
注:①search()のパラメータが正規表現でない場合は、RegExpアーキテクチャ関数により正規表現に変換されます.      ②search()は大域検索方法に対応していません.2:replace()は検索と置換の操作パラメータを実行します.1番目の-->正則表現2番目の-->置換する文字列(も関数です.この関数は動的な計算に文字列を置換できます.)注:①はgをサポートしています. 正規表現では、gが設定されています.モードにマッチするすべてのサブストリングは、2番目のパラメータで指定された文字列に置き換えられます.   正規表現にはgが設定されていません.マッチした最初の部分列のみを置換します.②最初のパラメータが正則ではなく、文字列である場合、replace()は直接この文字列を検索します.
例えば、大文字と小文字を区別しないすべてのjavascriptを、大文字と正確なJavaScriptに置き換えます.
<script>
    var str = "javascript,javascript,javascript,javaScript";
    alert(str.replace(/javascript/gi,"JavaScript"));        //JavaScript,JavaScript,JavaScript,JavaScript
</script>    
方法3:match()パラメータ:正規表現の戻り値:マッチング結果からなる配列はg例1をサポートします.
<script>
    var math = "1 plus 2 equals 3".match(/\d+/g);
    console.log(math);     // ["1", "2", "3"]
    console.log(typeof math);     //object
</script>  
実例二:
<script>
    var math = "1 plus 2 equals 3".match(/\d/);
    console.log(math);     // ["1", index: 0, input: "1 plus 2 equals 3"]
    console.log(typeof math);     //object
</script>    
注意:文字列のmath()に大域でない正規表現が入ってきます.マッチングの場合:最初のマッチ値のみを検索します.配列の最初の要素:マッチする文字列配列の第二の要素:正規表現では丸括弧で囲まれたサブ表現で、返した配列は2つの属性--indexとinputがあります.
方法4:split()戻り値:配列区切り子:split()のパラメータは、例えば、
<script>
    var str= "1,2,3,4,5,6,7,8".split(',');
    console.log(str); //["1", "2", "3", "4", "5", "6", "7", "8"]
</script>
パラメータが正規表現の場合(セパレータを指定してもいいです.両側は任意の空白文字を残してもいいです.)戻ります.呼び出した文字列をサブ文字列からなる配列に分割します.
<script>
    var str= "1,2,3,4,5,6,7,8".split(/\s*,\s*/);     //            
    console.log(str);     //["1", "2", "3", "4", "5", "6", "7", "8"]
</script>
七、RegExpオブジェクト
RegExp()構造関数:パラメータ:2つの文字列パラメータ1つ目:正規表現の本体部分(2つのスラッシュの間のテキスト)2番目:正規表現の修飾子(g,i,mの3つまたはこれら3つの組み合わせ)を指定します.注意:文字列の直接量であれ、正規表現であれ、変換文字のプレフィックスとして文字を使用します.例えば、var zipCode=new RegExp('\d{5'、'g')//グローバルマッチング文字列の5つの数字は、ここでは/ではなく/です.