⊗jsSpRECB 100 of 294 menu

JavaScriptの正規表現における中括弧

演算子 '+''*''?' は便利ですが、特定の繰り返し回数を指定することはできません。 その場合に役立つのが演算子 {}です。

その動作は次のとおりです: {5} - 5回の繰り返し、{2,5} – 2回から5回までの繰り返し(両端を含む)、{2,} - 2回以上の繰り返し。{,2} のようなオプションはないことに注意してください。例を見てみましょう:

この例では、検索パターンは次のようになります: 文字 'x'、文字 'a' が1回または2回、 文字 'x':

let str = 'xx xax xaax xaaax'; let res = str.replace(/xa{1,2}x/g, '!');

結果、変数には以下が書き込まれます:

'xx ! ! xaaax'

この例では、検索パターンは次のようになります: 文字 'x'、文字 'a' が2回以上、 文字 'x':

let str = 'xx xax xaax xaaax'; let res = str.replace(/xa{2,}x/g, '!');

結果、変数には以下が書き込まれます:

'xx xax ! !'

この例では、検索パターンは次のようになります: 文字 'x'、文字 'a' が3回、 文字 'x':

let str = 'xx xax xaax xaaax'; let res = str.replace(/xa{3}x/g, '!');

結果、変数には以下が書き込まれます:

'xx xax xaax !'

この例では、検索パターンは次のようになります: 文字 'a' が10回:

let str = 'aaa aaaaaaaaaa aaa'; let res = str.replace(/a{10}/g, '!');

結果、変数には以下が書き込まれます:

'aaa ! aaa'

この例で、コードの作者は次のパターンを意図していました: 文字 'x'、文字 'a' が3回以下、 文字 'x'。 しかし、残念ながら {,3} は機能しません。 明示的に指定する必要があります:

let str = 'xx xax xaax xaaax'; let res = str.replace(/xa{1,3}x/g, '!');

結果、変数には以下が書き込まれます:

'xx ! ! !'

ゼロも許容されます:

let str = 'xx xax xaax xaaax'; let res = str.replace(/xa{0,3}x/g, '!');

結果、変数には以下が書き込まれます:

'! ! ! !'

実践問題

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

let str = 'aa aba abba abbba abbbba abbbbba';

文字列 'abba''abbba''abbbba' のみを見つける正規表現を書いてください。

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

let str = 'aa aba abba abbba abbbba abbbbba';

'b'3回以下(含む)出現する 'aba' 形式の文字列を見つける正規表現を書いてください。

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

let str = 'aa aba abba abbba abbbba abbbbba';

'b'4回以上(含む)出現する 'aba' 形式の文字列を見つける正規表現を書いてください。

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