测试preg_replace无法正常工作

时间:2016-02-10 01:41:34

标签: php regex 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);

echo $pattern[0]; // /(?:load.dataset|"Foo, Bar?)"/
echo $replacement[0]; // "/my/path/JohnDoe.csv"

然而,替换看起来不像它正在工作;

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

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

为什么不进行更换?

1 个答案:

答案 0 :(得分:1)

需要将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。