测试preg_replace不起作用


tested preg_replace not working

我有以下内容

$string = 'Trials <- load.dataset("Foo, Bar")';  
$pattern[0] = "/(?:load.dataset|'"Foo, Bar?)'"/";
$replacement[0] = '"/my/path/JohnDoe.csv"';
preg_replace($pattern, $replacement, $string);
echo $pattern[0]; // /(?:load.dataset|"Foo, Bar?)"/
echo $replacement[0]; // "/my/path/JohnDoe.csv"

但是,替换看起来不起作用;

echo $string; // Trials <- load.dataset("Foo, Bar")

我已经用 PHP Live 正则表达式测试了我的正则表达式,它在那里工作正常,所以我不确定我在哪里犯了错误。

为什么更换没有发生?

需要将preg_replace分配给变量。

如下:

$string = 'Trials <- load.dataset("Foo, Bar")';  
$pattern[0] = "/(?:load.dataset|'"Foo, Bar?)'"/";
$replacement[0] = '"/my/path/JohnDoe.csv"';
preg_replace($pattern, $replacement, $string);

即时替换,请尝试更新为:

$string = preg_replace($pattern, $replacement, $string);

从手册:

如果找到匹配项,将返回新主题,否则如果发生错误,将返回主题不变或 NULL。