preg_replace

関数の概要

preg_replace は、PHPで正規表現を使って文字列の特定部分を別の文字列に置換するための関数です。正規表現パターンにマッチした部分を検出し、その部分を指定した置換文字列で置き換えることができます。文章の加工やデータの整形などに非常に便利です。

パラメータの説明

  • pattern:置換対象を指定する正規表現パターン(文字列または配列)。スラッシュ(/)などのデリミタで囲みます。
  • replacement:置換後の文字列。配列も指定可能で、patternが配列の場合はそれに対応します。
  • subject:置換対象となる文字列(または配列)。
  • limit(省略可能):置換回数の上限。デフォルトは -1(無制限)です。
  • count(省略可能):実際に置換が行われた回数を格納する変数への参照。

戻り値

置換後の文字列を返します。subjectが配列の場合は、配列の各要素を置換した結果の配列を返します。エラーが発生した場合は NULL を返します。

使用例

基本的な使い方

$text = "PHPは楽しい言語です。";
$pattern = "/楽しい/";
$replacement = "すばらしい";

$result = preg_replace($pattern, $replacement, $text);
echo $result; // 出力: PHPはすばらしい言語です。

文字列「楽しい」を「すばらしい」に置換しています。正規表現パターンはスラッシュ(/)で囲む必要があります。

複数パターンの置換

$text = "apple, banana, cherry";
$patterns = ["/apple/", "/banana/"];
$replacements = ["りんご", "ばなな"];

$result = preg_replace($patterns, $replacements, $text);
echo $result; // 出力: りんご, ばなな, cherry

複数の正規表現パターンを配列で指定し、それぞれ対応する置換文字列に置き換えています。

数字をすべて「#」に置換

$input = "電話番号は090-1234-5678です。";
$pattern = "/[0-9]/";
$replacement = "#";

$output = preg_replace($pattern, $replacement, $input);
echo $output; // 出力: 電話番号は###-####-####です。

正規表現で数字(0~9)を指定し、数字をすべて「#」に変更しています。

関連する関数

  • preg_match:正規表現パターンにマッチするかどうかを調べる関数。
  • preg_match_all:正規表現でマッチするすべての結果を取得する関数。
  • preg_split:正規表現で文字列を分割する関数。

まとめ

preg_replace はPHPで正規表現を使った文字列置換を簡単に行える強力な関数です。単純な置換から複雑なパターンマッチングまで幅広く使えます。実務では入力値のフォーマット変換やテキストの加工など、多くの場面で役立ちます。正規表現の基本を理解し、パラメータを正しく指定することで効果的に活用しましょう。