2010-04-30 103 views
3

我需要在PHP中的類似功能這個JavaScript函數PHP函數與此類似JavaScript函數

text = text.replace(/ffc/g, "Hello"); 

我想了preg_replace會做,但我不知道怎麼寫的表達..

我想類似/ffc/g正則表達式是上面的,我需要的到底是什麼進行更換時要匹配完整的單詞和案例...

回答

5
$text = preg_replace('/ffc/', 'replacement text', $subject); 

PHP的在線手冊是相當驚人的,而語言的一個最好的功能:

http://php.net/preg_replace

+0

無效的表達,無效使用['preg_replace'](http://pl.php.net/manual/en/function.preg-replace.php),最後...使用常規的rxpressions進行如此簡單的任務。 – Crozin 2010-04-30 05:28:25

+0

也許OP只是要求在PHP中使用正則表達式替換函數。考慮到在線手冊的強大性,我也認爲提及php.net是一個很棒的想法。 – dclowd9901 2010-04-30 05:31:41

-2
str_replace($needle, $replacement, $haystack); 
+0

在[PCRE](http://www.php.net/manual/pl/reference.pcre.pattern.modifiers.php)中也沒有像'g'這樣的修飾符,同樣使用regexp進行簡單替換也是過度使用。 – Crozin 2010-04-30 05:31:45

+0

誰對正則表達式有什麼評論? – dclowd9901 2010-04-30 05:40:15

1

只需使用str_replace功能,像這樣:

$text = str_replace('ffc', 'Hello', $text); 

使用正則表達式這裏是巨大的過度使用。

+0

看到他的替代例子是相當無意義的我很確定這不是他想要做的 - 它更可能「我如何做正則表達式替換在PHP」 – Erik 2010-04-30 05:33:17

+0

謝謝..但我想匹配的情況下,還執行替換時的完整單詞 – Jude 2010-04-30 07:48:48

0

preg_replace(); 會做。

釋:

preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]]) 
The pattern to search for. It can be either a string or an array with 

字符串。

The e modifier makes preg_replace() treat the replacement 

參數作爲 適當引用替換後的PHP代碼是 完成。提示:確保替換 構成有效的PHP代碼字符串 ,否則PHP將在包含 preg_replace()的行中抱怨 解析錯誤。

該字符串或字符串數​​組替換爲 。如果此參數是字符串 ,並且模式參數是數組,則 所有模式將被替換爲該 字符串。如果pattern和 替換參數都是數組,則 中的每個模式將被 替換對應替換。如果替換 陣列中的元素數少於模式陣列中的 ,則任何 多餘的模式將被替換爲 空字符串。

replacement may contain references of the form \\n or (since PHP 4.0.4) 

$ N,後者的形式是所述 優選的。每個這樣的參考文獻 將被第n個括號內的模式所取代的文本 所取代。 可以是0到99,並且\ 0或$ 0 指的是整個模式匹配的文本。開頭括號是 從左到右數(從1開始 )獲取 捕獲子模式的編號。要替換使用反斜槓 ,它必須加倍 (「\\」PHP字符串)。

When working with a replacement pattern where a backreference is 

緊接着另一個號碼 (即:一個匹配的模式後,將文字數 立即), 不能使用熟悉的\ 1 符號爲您的反向引用。 \ 11, 例如,將會混淆 preg_replace(),因爲它不知道 您是否希望\ 1反向引用 後跟文字1或反向引用後面什麼都不是。在 這種情況下,解決方法是使用 \ $ {1} 1。這會創建一個單獨的$ 1 反向引用,而將1作爲 文字。

When using the e modifier, this function escapes some characters 
在 字符串替換 反向引用

(即」,」,\和NULL)。這樣做是爲了確保從 反向引用使用而造成的使用單 或雙引號沒有語法錯誤 (例如 '的strlen(\' $ 1 \ ')+ strlen的( 「$ 2」)')。讓 確保您瞭解PHP的字符串 語法確切地知道該 解釋字符串什麼樣子的。

字符串或者使用字符串的數組來搜索和替換。

If subject is an array, then the search and replace is performed on 

受試者的每一個條目,並且返回 值是一個數組爲好。

每個主題字符串中的每個模式的最大可能替代數。

如果指定了,這個變量將會被 所填充的替換數 完成。 默認爲-1(無限制)。

preg_replace()返回一個數組,如果 的主體參數是一個數組,否則返回一個字符串 。

如果找到匹配,新的主題 將被退回,否則受 將是否發生 返回錯誤不變或NULL。

0

去你替換全字的要求,我建議如下:

$text = preg_replace ('/\bffc\b/', 'Hello', $text); 

替換「FFC」的所有實例,並區分大小寫