手当たり次第に調べる正則マッチングノート

2413 ワード

一般的な要件は次のとおりです。

  • 文字列の最初の一致を取得する必要がある場合は
  • var re = /quick\s(brown).+?(jumps)/ig;
    var result = re.exec('The Quick Brown Fox Jumps Over The Lazy Dog');
    //   g  ,  exec  
    // result[0]: Quick Brown Fox Jumps
    
  • g識別子を使用する場合(使用しない場合は以下の方法も適用)、正規のグループマッチング情報
  • を取得したい場合は
    var re = /quick\s(brown).+?(jumps)/ig;
    var result = re.exec('The Quick Brown Fox Jumps Over The Lazy Dog');
    // index 1~n  ( ,  n   2)
    // result[1]: Brown
    // result[2]: Jumps
    
    execの詳細については、MDNドキュメントRegExpを参照してください.prototype.exec()
  • g識別子を使用しない場合、正規のグループマッチング情報
  • を取得したい場合は、
    'mockid=272; ……'.match(/mockid=(\d+);/i)
    // ["mockid=272;", "272", index: 0, input: "mockid=272; ……"]
    //   g  ,  ["mockid=272;"]
    
  • は、複数の可能な値を一致させ、最終的に一致する値
  • を取得する.
    'GET/path/to/some/place'.match(/^(GET|POST|PUT|DELETE)/gi)
    //  :["GET"]
    
    matchの詳細については、MDNドキュメントStringを参照してください.prototype.match()
  • 正則(true or false)
  • に一致するかどうかを知りたいだけです.
    // RegExp.prototype.test()
    var str = 'hello world!';
    var result = /^hello/.test(str);
    console.log(result); // true
    
  • 文字列がいずれかのケースに一致するかどうか
  • let type = 'Array';
    /Array|Object/.test(type) // true
    
    testの詳細については、MDNドキュメントRegExpを参照してください.prototype.test()
    // String.prototype.search()
    var str = "hey JudE";
    var re = /[A-Z]/g;
    var re2 = /[.]/g;
    console.log(str.search(re)); // returns 4, which is the index of the first capital letter "J"
    console.log(str.search(re2)); // returns -1 cannot find '.' dot punctuation
    //   false
    
    searchの詳細については、MDNドキュメントStringを参照してください.prototype.search()
  • マッチングに成功した文字列を処理する
  • function replacer(match, p1, p2, p3, offset, string) {
      // p1:([^\d]*) p2:(\d*) p3:([^\w]*)
      // p1  , p2  , p3  
      return [p1, p2, p3].join(' - ');
    }
    var newString = 'abc12345#$*%'.replace(/([^\d]*)(\d*)([^\w]*)/, replacer);
    console.log(newString);  // abc - 12345 - #$*%
    

    推奨規則ツール:

  • RegExr

  • とても使いやすい正規作成ツールで、左側のメニューバーのcheatsheetをクリックして、私のニーズに合った正規表現の作成を学びます.
  • Debuggex

  • 正規表現(複雑版)を可視化して表示し、直感的に神器を1枚
  • Regexper

  • 正規表現の表示を視覚化(簡略化)
  • Rubular