⊗ppPmRgRP 253 of 447 menu

PHPの正規表現置換におけるキャプチャグループ

関数preg_replaceを使用する際、 正規表現で何かをキャプチャグループに入れると、 置換文字列内で、ドル記号$とグループ番号を書くことで、 そのキャプチャグループの内容を挿入できます。 例えば、$0 - 0番目のグループ(全体にマッチした部分)、 $1 - 1番目のグループ、$2 - 2番目のグループ といった具合です。

これがなぜ必要で、どのように使うのか、 例を見てみましょう。

すべての数値を探し、それらを中括弧で囲まれた 同じ数値に置き換えてみましょう。これを行うには、 見つかったすべての数値を、中括弧で囲まれた 同じ数値に置き換えます:

<?php $str = '1 23 456 xax'; $res = preg_replace('#(\d+)#', '{$1}', $str); ?>

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

'{1} {23} {456} xax'

'x'で囲まれた数値のすべての文字列を見つけ、 それらの数値を、'!'記号で囲まれた 同じ数値に置き換えてみましょう:

<?php $str = 'x1x x23x x456x xax'; $res = preg_replace('#x(\d+)x#', '!$1!', $str); ?>

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

'!1! !23! !456! xax'

次の問題を解決してみましょう: 'aaa@bbb'という形式の文字列があります - 文字、次にアットマーク、次に文字です。 '@'の前後の文字を入れ替える必要があります。 実装してみましょう:

<?php $str = 'aaa@bbb ccc@ddd'; $res = preg_replace('#([a-z]+)@([a-z]+)#', '$2@$1', $str); ?>

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

'bbb@aaa ddd@ccc'

実践問題

次の文字列があります:

<?php $str = '12 34 56 78'; ?>

すべての2桁の数字の桁を入れ替えてください。

日付の文字列があります:

<?php $str = '31.12.2025'; ?>

この日付を'2025.12.31'の形式に変換してください。

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