PHP preg_replace_callback_array()関数
例
文中の各単語に含まれる文字または数字の数を示します。
<?php
function countLetters($matches) {
return $matches[0] . '[' . strlen($matches[0]) . 'letter]';
}
function countDigits($matches) {
return $matches[0] . '[' . strlen($matches[0]) . 'digit]';
}
$input = "There are 365 days in a year.";
$patterns = [
'/\b[a-z]+\b/i' => 'countLetters',
'/\b[0-9]+\b/' => 'countDigits'
];
$result = preg_replace_callback_array($patterns, $input);
echo $result;
?>
定義と使用法
preg_replace_callback_array()
関数は、一連の正規表現の一致がコールバック関数の戻り値に置き換えられた文字列または文字列の配列を返します。
注:文字列ごとに、関数は指定された順序でパターンを評価します。文字列の最初のパターンを評価した結果は、2番目のパターンの入力文字列として使用されます。これにより、予期しない動作が発生する可能性があります。
構文
<div>preg_replace_callback_array(<em>patterns, input, limit, count</em>)</div>
パラメータ値
パラメータ | 説明 |
---|---|
pattern | Required. 正規表現パターンをコールバック関数に関連付ける連想配.
列。 配列の最初の要素には式全体のマッチが含まれ、残りの要素には式の各グループのマッチが含まれます。 |
input | Required 置換が実行される文字列または文字列の配列 |
limit | Optional デフォルトは-1で、無制限を意味します。各文字列で実行で. きる置換の数に制限を設定します |
count | Optional 関数が実行された後、この変数には、実行された置換の数を示す数値が含まれます |
Technical Details
Return Value: | 入力文字列または文字列に置換を適用した結果の文字列または文字列の配列を返します。 |
---|---|
PHP バージョン: |
7+ |
その他の例
例
この例では、パターンが順番に評価されることで、予期せぬ影響が発生する可能性があることを示している。まず、countLetters置換は"[4letter]"を"days"に追加し、その置換が実行された後、countDigits 置換は "4letter"で"4"を見つけ、それに "[1digit]" を追加します。<?php
function countLetters($matches) {
return $matches[0] . '[' . strlen($matches[0]) . 'letter]';
}
function countDigits($matches) {
return $matches[0] . '[' . strlen($matches[0]) . 'digit]';
}
$input = "365 days";
$patterns = [
'/[a-z]+/i' => 'countLetters',
'/[0-9]+/' => 'countDigits'
];
$result = preg_replace_callback_array($patterns, $input);
echo $result;
?>
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。