⊗jsSpREME 124 of 294 menu

JavaScriptの正規表現におけるexecメソッド

メソッド exec は文字列に対する検索を実行します。 結果として見つかった部分文字列とそのキャプチャグループ(括弧でキャプチャされた部分)が返されます。 このメソッドは、次に呼び出されたとき、 前回見つかった部分文字列の終わった位置から 検索を開始するという特徴があります。

例を見てみましょう。 次のような文字列があるとします:

let str = '12 34 56';

次のような正規表現があるとします:

let reg = /\d+/g;

このメソッドを文字列に対して順に呼び出してみましょう:

let res1 = reg.exec(str); console.log(res1[0]); // 12 let res2 = reg.exec(str); console.log(res2[0]); // 34 let res3 = reg.exec(str); console.log(res3[0]); // 56

3回呼び出した後、文字列の中に正規表現にマッチする部分が もうないため、次にメソッドを呼び出すと null が返されます:

let res4 = reg.exec(str); console.log(res4); // null

メソッドのこの特徴は、ループ内で便利に使用できます:

let str = '12 34 56'; let reg = /\d+/g; let res; while (res = reg.exec(str)) { console.log(res); // [12], [34], [56] }

マッチ全体だけでなく、キャプチャグループごとに分解することもできます:

let str = '12 34 56'; let reg = /(\d)(\d)/g; let res; while (res = reg.exec(str)) { console.log(res); // [12, 1, 2], [34, 3, 4], [56, 5, 6] }

次の文字列が与えられます:

let str = '12:37:57 15:48:58 17:59:59';

この中から時刻を表すすべての部分文字列を見つけ、 それぞれについて、時、分、秒をキャプチャグループに分解してください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否