⊗ppPmRgChS 231 of 447 menu

PHP正規表現における文字セット

文字グループ \d\w は あまり柔軟ではありません。数字以外のすべての文字を見つけるというような 単純なタスクでさえ、これらでは解決できません。そのようなタスクには、 OR演算を表す角括弧を使用する必要があります。

角括弧は、その中にリストされた任意の1文字を置き換えます。 例えば、このように: #x[abc]x# - 私たちは、 両端に文字xが位置し、その間に1文字 - 'a'、または'b'、または'c' がなければならないと指定しています。

角括弧の後に繰り返し演算子を記述できます。 例えば、このように: #x[abc]+x# - 私たちは、xの間には任意の数の 'a''b''c' の文字が任意の組み合わせで存在できると指定しています。

文字を列挙するだけでなく、ハイフンで区切られた2つの文字の間の 文字グループを作成することもできます。 例えば、このように: #[a-d]# - 'a'から'd'までのすべての文字を 取得します。

例を見てみましょう。

この例では、検索パターンは次のようになります: xの間には、'a'から'z'までの任意の文字:

<?php $str = 'xax xbx xcx x@x'; $res = preg_replace('#x[a-z]x#', '!', $str); ?>

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

'! ! ! x@x'

この例では、検索パターンは次のようになります: xの間には、'a'から'k'までの任意の文字:

<?php $str = 'xax xbx xmx x@x'; $res = preg_replace('#x[a-k]x#', '!', $str); ?>

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

'! ! xmx x@x'

この例では、検索パターンは次のようになります: xの間には、'A'から'Z'までの任意の文字:

<?php $str = 'xax xBx xcx x@x'; $res = preg_replace('#x[A-Z]x#', '!', $str); ?>

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

'xax ! xcx x@x'

この例では、検索パターンは次のようになります: xの間には、0から9までの任意の数字:

<?php $str = 'xax x1x x3x x5x x@x'; $res = preg_replace('#x[0-9]x#', '!', $str); ?>

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

'xax ! ! ! x@x'

この例では、検索パターンは次のようになります: xの間には、3から7までの任意の数字:

<?php $str = 'xax x1x x3x x5x x@x'; $res = preg_replace('#x[3-7]x#', '!', $str); ?>

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

'xax x1x ! ! x@x'

この例では、検索パターンは次のようになります: xの間には、'a'から'z'までの任意の文字、または1から9までの数字:

<?php $str = 'xax x1x x3x x5x x@x'; $res = preg_replace('#x[a-z1-9]x#', '!', $str); ?>

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

'! ! ! ! x@x'

この例では、検索パターンは次のようになります: xの間には、'a'から'z'までの任意の文字、または'A'から'Z'までの任意の文字:

<?php $str = 'xax xBx xcx x5x x@x'; $res = preg_replace('#x[a-zA-Z]x#', '!', $str); ?>

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

'! ! ! x5x x@x'

この例では、検索パターンは次のようになります: xの間には、'a'から'z'までの任意の文字、または数字1, 2:

<?php $str = 'xax xbx x1x x2x x3x'; $res = preg_replace('#x[a-z12]x#', '!', $str); ?>

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

'! ! ! ! x3x'

この例では、検索パターンは次のようになります: xの間には、'a'から'z'までの文字が1つ以上:

<?php $str = 'xx xabesx xaadx x123x xa3x'; $res = preg_replace('#x[a-z]+x#', '!', $str); ?>

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

'xx ! ! ! x123x xa3x'

文字数がゼロでも良いようにしてみましょう:

<?php $str = 'xx xabesx xaadx x123x xa3x'; $res = preg_replace('#x[a-z]*x#', '!', $str); ?>

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

'! ! ! x123x xa3x'

実践問題

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

<?php $str = 'aba aea aca aza axa'; ?>

次のパターンに一致する正規表現を記述してください: 両端に文字'a'があり、 その間に文字'b''e'、または'x'がある

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

<?php $str = 'a1a a3a a7a a9a aba'; ?>

次のパターンに一致する正規表現を記述してください: 両端に文字'a'があり、 その間に3から6までの数字がある

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

<?php $str = 'aba aea afa aha aga'; ?>

次のパターンに一致する正規表現を記述してください: 両端に文字'a'があり、 その間にaからgまでの文字がある

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

<?php $str = 'aba aea afa aha aga'; ?>

次のパターンに一致する正規表現を記述してください: 両端に文字'a'があり、 その間にaからfまでおよびjからzまでの文字がある

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

<?php $str = 'aAa aea aEa aJa a3a'; ?>

次のパターンに一致する正規表現を記述してください: 両端に文字'a'があり、 その間にaからfまでおよびAからDまでの文字がある

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

<?php $str = 'aAXa aeffa aGha aza ax23a a3sSa'; ?>

次のパターンに一致する正規表現を記述してください: 両端に文字'a'があり、 その間に小文字のラテン文字がある。他の部分には影響を与えないようにしてください。

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

<?php $str = 'aAXa aeffa aGha aza ax23a a3sSa'; ?>

次のパターンに一致する正規表現を記述してください: 両端に文字'a'があり、 その間に小文字および大文字のラテン文字がある。他の部分には影響を与えないようにしてください。

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

<?php $str = 'aAXa aeffa aGha aza ax23a a3sSa'; ?>

次のパターンに一致する正規表現を記述してください: 両端に文字'a'があり、 その間に小文字のラテン文字および数字がある。他の部分には影響を与えないようにしてください。

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