199 of 410 menu

関数 preg_match

関数 preg_match は、文字列内で正規表現との一致を検索します。最初のパラメータは正規表現パターン、2番目は検索対象の文字列、3番目(オプション)は見つかった一致を格納する配列、4番目(オプション)はフラグ、5番目(オプション)は検索開始位置のオフセットを受け取ります。

構文

preg_match(pattern, subject, [matches], [flags], [offset]);

フラグ

フラグ 定数 説明
PREG_PATTERN_ORDER 1 結果をパターンごとにソート(デフォルト)
PREG_SET_ORDER 2 結果を一致セットごとにソート
PREG_OFFSET_CAPTURE 256 文字列内での一致位置を返す
PREG_UNMATCHED_AS_NULL 512 一致しなかったサブパターンをNULLとして返す

文字列に数字が含まれているか確認します:

<?php $res = preg_match('/\d+/', 'abc123'); echo $res; ?>

コード実行結果:

1

文字列からすべての数字を配列として抽出します:

<?php preg_match('/\d+/', 'abc123', $matches); var_dump($matches); ?>

コード実行結果:

[0 => '123']

正規表現での名前付きキャプチャグループの使用:

<?php preg_match('/(?P<name>\w+)\s+(?P<age>\d+)/', 'John 25', $matches); var_dump($matches); ?>

コード実行結果:

[ 0 => 'John 25', 'name' => 'John', 1 => 'John', 'age' => '25', 2 => '25' ]

一致位置を取得するための PREG_OFFSET_CAPTURE フラグの使用:

<?php preg_match('/\d+/', 'abc123', $matches, PREG_OFFSET_CAPTURE); var_dump($matches); ?>

コード実行結果:

[ 0 => [ 0 => '123', 1 => 3 ] ]

オフセット(開始位置)を指定した検索:

<?php preg_match('/\d+/', '123abc456', $matches, 0, 3); var_dump($matches); ?>

コード実行結果:

[0 => '456']

Eメールアドレスの妥当性チェック:

<?php $email = 'test@example.com'; $res = preg_match('/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/', $email); echo $res ? 'Valid' : 'Invalid'; ?>

コード実行結果:

'Valid'

関連項目

  • 関数 preg_match_all,
    これは文字列内のすべての一致を検索します
  • 関数 preg_replace,
    これは正規表現に基づいた置換を実行します
日本語
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
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否