2015-10-16 45 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);