⊗pyPmRECB 37 of 129 menu

Python正規表現における中括弧

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

その動作は次のとおりです:{5}は5回の繰り返し、{2,5}は2回から5回(両端を含む)の繰り返し、{2,}は2回以上の繰り返しです。例を見てみましょう:

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

txt = 'xx xax xaax xaaax' res = re.sub('xa{1,2}x', '!', txt) print(res)

コードの実行結果:

'xx ! ! xaaax'

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

txt = 'xx xax xaax xaaax' res = re.sub('xa{2,}x', '!', txt) print(res)

コードの実行結果:

'xx xax ! !'

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

txt = 'xx xax xaax xaaax' res = re.sub('xa{3}x', '!', txt) print(res)

コードの実行結果:

'xx xax xaax !'

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

txt = 'aaa aaaaaaaaaa aaa' res = re.sub('a{10}', '!', txt) print(res)

コードの実行結果:

'aaa ! aaa'

この例には次のようなパターンがあります:文字'x'、文字'a'が3回以下、文字'x'。これを実現するには、数字3の前に数を指定せず、単にカンマを置くことができます:

txt = 'xx xax xaax xaaax' res = re.sub('xa{,3}x', '!', txt) print(res)

コードの実行結果:

'! ! ! !'

3の前のゼロも有効です:

txt = 'xx xax xaax xaaax' res = re.sub('xa{0,3}x', '!', txt) print(res)

コードの実行結果:

'! ! ! !'

実践問題

次の文字列があります:

txt = 'aa aba abba abbba abbbba abbbbba'

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

次の文字列があります:

txt = 'aa aba abba abbba abbbba abbbbba'

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

次の文字列があります:

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