0

preg_replace関数に関してはまだ完全に迷っているので、誰かがこれを手伝ってくれたらとてもうれしいです。

次のような関数の呼び出しを含むことができる文字列があり、Published("today")それを正規表現で変換する必要がありますPublished("today", 1)

基本的に、正規表現を使用して関数に 2 番目のパラメーターを追加する必要があります。最初のパラメーターは英数字のテキストにすることができる (する必要がある) ため、str_replace は使用できません。

4

2 に答える 2

0

preg_replace_callbackは、私が考える仕事をするはずです。

<?php
$string = 'Published("today"); Published("yesterday"); Published("5 days ago");';

$callback = function($match) {
    return sprintf('%s, 1', $match[0]);
};

$string = preg_replace_callback(
    '~(?<=Published\()"[^"]+"(?=\))~',
    $callback,
    $string
);

echo $string;

/*
    Published("today", 1); Published("yesterday", 1); Published("5 days ago", 1);
*/
于 2013-04-17T17:47:07.373 に答える