⊗ppPmRgChG 230 of 447 menu

PHP正規表現における文字クラス

正規表現には、文字のグループ全体を一度に選択できる特殊なコマンドがあります。 コマンド \d0 から 9 までの数字を意味します。 コマンド \w は数字、ラテン文字、またはアンダースコアを表します。 コマンド \s はスペースまたは空白文字(スペース、改行、タブ)を表します。 大文字にすることでコマンドの意味を反転させることができます。例えば、\d が数字なら、\D は数字以外を表します。

すべての数字を見つけてみましょう:

<?php $str = '1 12 123'; $res = preg_replace('#\d#', '!', $str); ?>

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

'! !! !!!'

量指定子は文字クラスコマンドを1つの単位として扱うため、グループ化の括弧は必要ありません。 次の例では、検索パターンは数字(0から9)が1回以上となります:

<?php $str = '1 12 123 abc @@@'; $res = preg_replace('#\d+#', '!', $str); ?>

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

'! ! ! abc @@@'

次の例では、検索パターンは数字(0から9)以外の文字が1回以上となります:

<?php $str = '123abc3@@'; $res = preg_replace('#\D+#', '!', $str); ?>

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

'123!3!'

この例では、検索パターンは空白文字1回となります:

<?php $str = '1 12 123 abc @@@'; $res = preg_replace('#\s#', '!', $str); ?>

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

'1!12!123!abc!@@@'

この例では、検索パターンは空白文字以外の文字が1回以上となります。 スペースで区切られたすべての部分文字列が '!' に置き換えられます:

<?php $str = '1 12 123 abc @@@'; $res = preg_replace('#\S+#', '!', $str); ?>

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

'! ! ! ! !'

この例では、検索パターンは数字または文字が1回以上となります。 数字と文字で構成されるすべての部分文字列が '!' に置き換えられます:

<?php $str = '1 12 123a Abc @@@'; $res = preg_replace('#\w+#', '!', $str); ?>

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

'! ! ! ! @@@'

この例では、検索パターンは数字でも文字でもない文字が1回以上となります。 この定義では、'@@@' とすべてのスペース(これらも数字でも文字でもない)が該当します。 末尾の1つの '!' は、先頭にスペースがある文字列 ' @@@' が変換されたものであることに注意してください:

$str = '1 12 123 Abc @@@'; $res = preg_replace('#\W+#', '!', $str);

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

'1!12!123!Abc!'

実践問題

次の文字列があります:

<?php $str = 'a1a a2a a3a a4a a5a aba aca'; ?>

次のような文字列を見つける正規表現を書いてください:両端が文字 'a' で、その間に1つの数字がある

次の文字列があります:

<?php $str = 'a1a a22a a333a a4444a a55555a aba aca'; ?>

次のような文字列を見つける正規表現を書いてください:両端が文字 'a' で、その間に任意の数の数字がある

次の文字列があります:

<?php $str = 'aa a1a a22a a333a a4444a a55555a aba aca'; ?>

次のような文字列を見つける正規表現を書いてください:両端が文字 'a' で、その間に任意の数の数字(0桁、つまり文字列 'aa' も含む)がある

次の文字列があります:

<?php $str = 'avb a1b a2b a3b a4b a5b abb acb'; ?>

次のような文字列を見つける正規表現を書いてください:両端が文字 'a''b' で、その間が数字ではない

次の文字列があります:

<?php $str = 'ave a#b a2b a$b a4b a5b a-b acb'; ?>

次のような文字列を見つける正規表現を書いてください:両端が文字 'a''b' で、その間が文字でも数字でもない

次の文字列があります:

<?php $str = 'ave a#a a2a a$a a4a a5a a-a aca'; ?>

すべてのスペースを '!' に置き換える正規表現を書いてください。

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