関数 preg_replace_callback

関数 preg_replace_callback は、正規表現による検索とコールバック関数を使用した置換を実行します。最初のパラメータは正規表現、2番目はコールバック関数、3番目は処理対象の文字列を受け取ります。コールバック関数は一致の配列を受け取り、置換文字列を返す必要があります。

構文

phppreg_replace_callback(pattern, callback, subject, [limit], [count]);

例

文字列内のすべての数字をその2乗に置き換えます:

php<?php
  $str = 'Numbers: 2, 4, 6';
  $res = preg_replace_callback('/\d+/', function($matches) {
    return $matches[0] * $matches[0];
  }, $str);
  echo $res;
?>

コード実行結果:

php'Numbers: 4, 16, 36'

例

すべての単語を大文字に変換します:

php<?php
  $str = 'hello world';
  $res = preg_replace_callback('/\b\w+\b/', function($matches) {
    return strtoupper($matches[0]);
  }, $str);
  echo $res;
?>

コード実行結果:

php'HELLO WORLD'

例

各数字の周りに括弧を追加します:

php<?php
  $str = '1 2 3 4 5';
  $res = preg_replace_callback('/\d+/', function($matches) {
    return '('.$matches[0].')';
  }, $str);
  echo $res;
?>

コード実行結果:

php'(1) (2) (3) (4) (5)'

関連項目

  • 関数 preg_replace,
    正規表現による置換を実行します
  • 関数 preg_match,
    正規表現による検索を実行します