⊗ppPmRgCB 228 of 447 menu

PHPの正規表現における波括弧

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

使い方は次の通りです: {5} - 5回の繰り返し、{2,5} - 2回から5回まで繰り返し (両端含む)、{2,} - 2回以上繰り返し。

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

<?php $str = 'xx xax xaax xaaax'; $res = preg_replace('#xa{1,2}x#', '!', $str); ?>

結果、変数には次の文字列が格納されます:

'xx ! ! xaaax'

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

<?php $str = 'xx xax xaax xaaax'; $res = preg_replace('#xa{2,}x#', '!', $str); ?>

結果、変数には次の文字列が格納されます:

'xx xax ! !'

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

<?php $str = 'xx xax xaax xaaax'; $res = preg_replace('#xa{3}x#', '!', $str); ?>

結果、変数には次の文字列が格納されます:

'xx xax xaax !'

この例での検索パターンは次の通りです: 文字 'a' が10回:

<?php $str = 'aaa aaaaaaaaaa aaa'; $res = preg_replace('#a{10}#', '!', $str); ?>

結果、変数には次の文字列が格納されます:

'aaa ! aaa'

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

<?php $str = 'xx xax xaax xaaax'; $res = preg_replace('#xa{1,3}x#', '!', $str); ?>

結果、変数には次の文字列が格納されます:

'xx ! ! !'

ゼロも指定可能です:

<?php $str = 'xx xax xaax xaaax'; $res = preg_replace('#xa{0,3}x#', '!', $str); ?>

結果、変数には次の文字列が格納されます:

'! ! ! !'

実践問題

次の文字列があります:

<?php $str = 'aa aba abba abbba abbbba abbbbba'; ?>

文字列 'abba', 'abbba', 'abbbba' のみを検索する正規表現を 書いてください。

次の文字列があります:

<?php $str = 'aa aba abba abbba abbbba abbbbba'; ?>

'aba' 形式の文字列のうち、 'b' が3回以下(3回を含む)現れるものを 検索する正規表現を書いてください。

次の文字列があります:

<?php $str = 'aa aba abba abbba abbbba abbbbba'; ?>

'aba' 形式の文字列のうち、 'b' が4回以上(4回を含む)現れるものを 検索する正規表現を書いてください。

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