2011-11-21 12 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互換正規表現の詳細については!

関連する問題