2012-12-14 77 views
0

我想在php中替換整個單詞。我發現下面 PHP string replace match whole wordphp中的整個單詞替換

從鏈接代碼我把下面的代碼示例從上面的鏈接。

$text = preg_replace('/\bHello\b/', 'NEW', $text); 

但它不適合我。 我有這樣

3 OR (2 AND CreatedDate = LAST_N_DAYS:2) OR 4 

字符串使用上述代碼變得

3 OR (Name = 'LAST WEEK' AND CreatedDate = LAST_N_DAYS:Name = 'LAST WEEK') OR 4. 

2替換爲替換2之後 「LAST_N_DAYS:2」 的字符串也。我想只替換2個。如果是任何單詞,都不應該被替換。

回答

0

把新桃換2:

$text = preg_replace('/\s2\s/',' NEW ',$test); 
+0

謝謝,這是工作,但它正在取代額外的空間。例如,如果str ='這是僅2'。而我正在取代2 = 4,那麼結果就像'這只是4'一樣。實際上'2'正在取代。 – user1808669

+0

然後在替換字符串4後放一個空格,就像我用'NEW' – Tuim

+0

謝謝。它工作正常。 – user1808669

0

如果你只想要替換第一次出現再增加一個限制:

// pattern, replacement, string, limit 
$text = preg_replace('#2#U', 'NEW', $text, 1); 

或者你可以在下面使用:

$text = preg_replace('#2\s(AND)#', 'NEW $1', $text); 
+0

這取代了所有的發生2與新。在第二種情況下,只有第一種情況。用戶希望用其他方式替換字符串中的任何獨立2。 – Tuim

+0

好吧,我錯了,然後:) – user969068

0

你可以簡單使用

str_replace('2', "Name = 'LAST WEEK'", $string); 
+0

爲什麼在這裏你使用正則表達式? –

+0

在這種情況下,所有2將被替換。例如$ str ='2和12'。如果我們替換2 = 4,那麼輸出將是'4和14'而不是'4和12'。 – user1808669

+0

只看此帖http://whats-online.info/science-and-tutorials/99/PHP-replace-the-whole-word-only-using-preg_replace-array/ –