2015-10-16 44 views
1

我想在聊天句子中替換髮言者的名字。假設我有以下聊天。如何使用替換對話文本?

詹姆斯:你在做什麼?
Lisa:沒什麼。
Marcus Ma:我也是。

我想使用preg_replace它是這樣的。

James:你在做什麼?
Lisa: Nothing。
Marcus Ma:我也是。

我做過嘗試,但在這裏就是我得到

詹姆斯:你在做什麼?
Lisa: Nothing。
Marcus Ma:我也是。

請檢查我的代碼,並告訴我,什麼是錯,非常感謝

preg_replace("/(\w+:)/i","<b>$1</b> &nbsp; ", $text); 
+0

你應該儘量減少你的榜樣。我明白你在沒有他們的情況下所要求的。 –

回答

1

更改這部分(\w+:)這一個([\w\s]+:)。其中包括空格\s

此外,設定您只想在^開頭匹配。

結果將是:

preg_replace("/^([\w\s]+:)/i","<b>$1</b> &nbsp; ", $text); 

希望它能幫助。

0

你應該使用這一個:

preg_replace("/^([^\:]+\:)/i","<b>$1</b> &nbsp; ", $text); 

它將幫助,如果名稱包括任何非字字符。

0

我認爲這是你在找什麼,希望這將有助於

preg_replace('/^(.+:)\s([\w\s?]+)/i','<b>$1</b> <em>$2</em>',$str);