⊗ppPmRgSP 248 of 447 menu

PHPでの正規表現検索におけるキャプチャグループ

ドメインを含む文字列があるとします:

<?php $str = 'eee site.ru bbb'; ?>

このドメインを見つけ、ドメイン名とゾーンに分割してみましょう。 そのために、正規表現の特別なキャプチャグループ を使います。

キャプチャグループは配列の要素であり、 正規表現で見つかった部分をそこに入れることができます。 今回の場合、最初のグループにドメイン名を、 2番目のグループにそのゾーンを入れることができます。

それではやってみましょう。まず、文字列内のドメインを 見つける正規表現を書きます:

<?php $reg = '#[a-z0-9_-]+\.[a-z]{2,}#'; ?>

次に、正規表現の中でどの部分がどのグループに入るかを 指定しましょう。これは丸括弧で行います。 ドメイン名を検索する部分と、ドメインゾーンを 検索する部分をこれで区切りましょう:

<?php $reg = '#([a-z0-9_-]+)\.([a-z]{2,})#'; ?>

そして、preg_match関数の第3引数に変数(名前は任意)を 指定します:

<?php preg_match($reg, $str, $res); ?>

指定した変数には、見つかったキャプチャグループを含む 配列が入ります。配列の0番目の要素には見つかった文字列全体が、 1番目の要素には最初のグループ、 2番目の要素には2番目のグループ、 以降も同様に入ります:

<?php preg_match($reg, $str, $res); var_dump($res); // 出力: ['site.ru', 'site', 'ru'] ?>

日付を含む文字列が与えられています:

<?php $str = '2025-12-31'; ?>

年、月、日をそれぞれ別のキャプチャグループに入れてください。

ファイル名を含む文字列が与えられています:

<?php $str = 'index.html'; ?>

ファイル名とその拡張子を別々のキャプチャグループに 入れてください。

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