2016-02-10 74 views
2

我有以下測試的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和正常工作有那麼我不知道,我犯了一個錯誤。

爲什麼更換不會發生?

+0

@ chris85錯字從問題。更新了它 – Wistar

+0

@ chris85。是。這並不明確。 – Wistar

回答

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。

+0

我不能相信我錯過了。我會在3分鐘內接受。謝謝 – Wistar