2011-11-21 48 views
2

我正在尋找快速和好的方法來在字符串中的每個單詞之前添加「 - 」。例如「bla bla bla」應該變成「-bla -bla -bla」。 我不想製作這個字符串的數組,然後映射它,等等。它看起來像一個錯誤和緩慢的方式。 你對此有什麼建議嗎?如何給字符串中的每個單詞添加一些符號?

+1

你如何定義這個詞?是「42」嗎?那麼''___「'呢?那麼'' - 「'? –

+0

慢是否重要?這真的會花費你多少錢?與尋求過早優化相比,獲得工作(如果不合適)的解決方案可能會更好地利用您的時間。通過「製作一個字符串數組」來創建 –

+0

您是指php split()函數?這就是我的方法 – ford

回答

5

如果我們假設一個字總是由一個空白,而且空格分隔沒有其他特殊的含義,我們可以這樣做:

$str = 'bla bla bla'; 
$symbol = '-'; 

$newString = $symbol . str_replace(' ', " $symbol", $str); 
echo $newString; 

輸出:

-bla -bla -bla 
+0

謝謝。漂亮而簡單的解決方案 – VitalyP

2

如何

preg_replace('/(\w+)/i', '-$1', $string); 
+0

不需要使用'i'修飾符,因爲'\ w'已經處理了這個 – Marcus

+0

正確,我的錯誤=) – Cyclonecode

7

您應該使用正則表達式:

echo preg_replace('/(\w+)/', '-$1', 'bla bla bla'); 

在線搜索Perl兼容的正則表達式瞭解更多詳情!

相關問題