PHP:preg_match()とpreg_grep()の違い

PHPのpreg_match関数とpreg_grep関数の違いについて解説します。

主な違い

  • preg_match(): 1つの文字列に対してパターンマッチング
    • 戻り値: マッチ数(0 or 1)、マッチ内容は第3引数で取得
    • 用途: 単一文字列の検証・抽出
  • preg_grep(): 配列全体に対してパターンマッチング
    • 戻り値: マッチした要素の配列(キーは保持)
    • 用途: 配列のフィルタリング

簡単な例

php
// preg_match()
preg_match('/^[0-9]+$/', '123');  // 1(マッチ)

// preg_grep()
$arr = ['abc', '123', 'def', '456'];
preg_grep('/^[0-9]+$/', $arr);  // ['123', '456']

ポイント

  • preg_match(): 最初のマッチで停止(全マッチはpreg_match_all()
  • preg_grep(): array_filter()のパターンマッチ版と考えるとわかりやすい

preg_match()

一つの文字列に対して正規表現を使った検索結果を返す。

preg_match()最初のマッチで停止するので、全ての検索結果を求める場合は preg_match_all() を使う。

preg_grep()

配列に対して正規表現を使った検索結果を返す。

この記事について

このページは、CEOが2025年10月30日 15:15に書いた記事です。

ひとつ前の記事は「macOSにMacPortsを使ってApacheをインストールする」です。

次の記事は「PHP:escapeshellcmd()とescapeshellarg()の違いについて」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。