我有以下内容
$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。