2011-11-21 95 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兼容的正则表达式了解更多详情!

相关问题