⊗jsSpRENPB 132 of 294 menu

JavaScriptの正規表現における非キャプチャ括弧

括弧 ( ) は2つの機能を持っています - 文字のグループ化とキャプチャグループとしての機能です。 では、グループ化したいがキャプチャはしたくない場合、 どうすればよいでしょうか? このような問題を解決するために、 非キャプチャ括弧 (?: ) が特別に考案されました - これらはグループ化しますが、 キャプチャグループには入れません。

次の例では、最初の括弧はグループ化のために、 2番目の括弧はキャプチャのために必要です。 しかし、どちらの括弧もデータをキャプチャグループに 保存してしまいます:

let str = 'abab123'; let res = str.match(/(ab)+([1-9]+)/);

結果、キャプチャグループには次の内容が入ります:

console.log(res[0]); // 'abab123' と出力 console.log(res[1]); // 'ab' と出力 console.log(res[2]); // '123' と出力

最初の括弧ペアがグループ化のみを行い、 キャプチャしないようにしてみましょう:

let str = 'abab123'; let res = str.match(/(?:ab)+([1-9]+)/);

結果、最初のキャプチャグループには数値が入ります:

console.log(res[1]); // '123' と出力
日本語
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
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否