⊗ppPmRgOC 241 of 447 menu

PHP正規表現における'または'コマンド

このレッスンでは、[]コマンドよりも強力なORのバリエーションである|コマンドについて説明します。このコマンドは正規表現を複数の部分に分割することができます。その結果、検索対象は正規表現の一部に一致するか、別の部分に一致することになります。例を見てみましょう。

この例での検索パターンは次の通りです: 3つの'a'文字または3つの'b'文字

<?php $str = 'aaa bbb abb'; $res = preg_replace('#a{3}|b{3}#', '!', $str); ?>

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

'! ! abb'

この例での検索パターンは次の通りです: 3つの'a'文字または1つ以上の'b'文字

<?php $str = 'aaa bbb bbbb bbbbb axx'; $res = preg_replace('#a{3}|b+#', '!', $str); ?>

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

'! ! ! ! axx'

この例での検索パターンは次の通りです: 1つ以上の英字または3つの数字

<?php $str = 'a ab abc 1 12 123'; $res = preg_replace('#[a-z]+|\d{3}#', '!', $str); ?>

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

'! ! ! 1 12 !'

縦棒は正規表現を2つだけでなく、任意の数の部分に分割することができます:

<?php $str = 'aaa bbb ccc ddd'; $res = preg_replace('#a+|b+|c+#', '!', $str); ?>

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

'! ! ! ddd'

縦棒が丸括弧内にある場合、'または'の動作はその括弧内でのみ有効です。例として、次のパターンに一致する文字列を検索してみましょう:先頭に1回以上の'a'または'b'があり、その後ろに2つの'x'文字が続く

<?php $str = 'axx bxx bbxx exx'; $res = preg_replace('#(a|b+)xx#', '!', $str); ?>

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

'! ! ! exx'

実践問題

次の文字列があります:

<?php $str = 'aeeea aeea aea axa axxa axxxa'; ?>

次のパターンに一致する文字列を見つける正規表現を書いてください: 両端に'a'文字があり、その間に任意の回数の'e'文字または任意の回数の'x'文字がある

次の文字列があります:

<?php $str = 'aeeea aeea aea axa axxa axxxa'; ?>

次のパターンに一致する文字列を見つける正規表現を書いてください: 両端に'a'文字があり、その間に2回の'e'文字または任意の回数の'x'文字がある

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