我有一堆以某種標準格式命名的文件。標準形式基本上是這樣的:多次調用preg_replace改變結果
[整數] _word1_word2_word3_ ... _wordn一個單詞真的可以是任何東西,但所有的單詞之間用下劃線分隔。
實在是隻有3個東西,我想做的文字:
1)我要修改的整數,它總是在一開始,讓類似「200」將成爲$ 200.00 。 2.用「with」替換「with」,「With」,「w /」或「W /」形式的任何「單詞」。
3.)用空格替換所有下劃線。
我寫了三個不同的preg_replace調用來完成這個技巧。它們分別是:
1)$filename = preg_replace("/(^[0-9]+)/","$ $1.00",$filename)
2)$filename = preg_replace("/_([wW]|[wW]ith)_/"," with ",$filename)
3)$filename = preg_replace("/_/"," ",$filename);
每次更換後工作正常單獨運行時,但是當所有的三個運行時,第二次更換被忽略。爲什麼會發生這樣的事情?
感謝您的幫助!
更新:
下面是實際的代碼我的工作:如果第一個替換刪除一些文字,第二更換比賽可能發生
$path = "./img";
$dir_handle = @opendir($path);
while ($file = readdir($dir_handle)) {
if ($file != "." && $file != "..") {
$id = preg_replace("/\.jpg/","",$file);
$id = preg_replace("/(^[0-9]+)/","$ $1.00", $id);
$id = preg_replace("/_([wW]\/|[wW]ith)_/"," with ", $id);
$id = preg_replace("/_/"," ", $id);
echo "<a href='javascript:show(\"img/$file\")'>$id</a> <br/>";
}
}
closedir($dir_handle);
工作正常,我。你可以發佈一些更多的代碼,以及不起作用的文本示例嗎? – 2010-03-26 22:24:08