JavaScriptの正規表現


このポストはシリーズの一部です.
  • 正および負の先読み
  • 前向きな先見/(?=...)/ 文字列のパターンの存在を探します.負の先見/(?!...)/ 文字列のパターンがない場合を探します.
    console.log("quit".match(/q(?=u)/)); // returns ["q"] because "u" is present after "q"
    console.log("qtui".match(/q(?!u)/)); // returns ["q"] because "u" is not present after "q"
    
  • 文字のグループ化をチェックする
  • 時には我々は、このいずれかまたはそれの文字の混合グループを探したい.
    例1
    let myString = "Eleanor Roosevelt";
    let myRegex = /(Eleanor|Franklin).*Roosevelt/g;
    let result = myRegex.test(myString);
    
    console.log(result) // true
    
    例2
    let testStr = "Pumpkin";
    let testRegex = /P(engu|umpk)in/;
    console.log(testRegex.test(testStr)); // true
    
  • キャプチャグループを使用した再利用パターン
  • キャプチャグループは、括弧で囲まれた正規表現パターンです.例えば、\w+ 英数字と一致する正規表現パターンです.したがって、対応するキャプチャグループは/(\w+)/ .
    これらのキャプチャグループを同じ正規表現パターン内で再利用できます.キャプチャグループ一時的な変数に保存されます.キャプチャグループを再利用するには、バックスラッシュでキャプチャグループの数に従ってアクセスします.キャプチャグループが自動的に左から右への開口括弧に基づいて番号が付けられます.
    例1
    let repeatStr = "row row row your boat";
    let repeatRegex = /(\w+) \1 \1/;
    console.log(repeatRegex.test(repeatStr)); // Returns true
    console.log(repeatStr.match(repeatRegex)); // Returns ["row row row", "row"]
    
    例2
    let repeatRegex = /(\w+) \1 (\d+) \2/;
    let repeatStr = "row row 2211 2211 your boat";
    console.log(repeatRegex.test(repeatStr)); // Returns true
    console.log(repeatStr.match(repeatRegex)); // Returns ["row row 2211 2211", "row", "2211"]
    
  • 検索グループを使用して置換します.
  • 文字列の中の部分文字列をreplace() ファンクション"some string".replace(/someregex/, "replacement") . 置換文字列のキャプチャグループを使用して、以下の例のように便利に単語を交換できます.
    console.log("Code Camp".replace(/(\w+)\s(\w+)/, "$2 $1")); // "Camp Code"
    
  • startとendから空白を削除します.
  • 文字列の先頭と末尾から任意のwhate空間文字を削除することができますtrim() 関数.しかし、どのようにregexを使用して削除することができますか?ここでは
    let hello = "   Hello, World!  ";
    let wsRegex = /^\s+|\s+$/g;
    let result = hello.replace(wsRegex, "");
    console.log(result); // returns "Hello, World!"
    
    そしてこれでJavaScriptコースの正規表現モジュールが完成しました.