如何使用替换会话文本?

时间:2015-10-16 23:58:33

标签: php regex preg-replace preg-match

我想在聊天句子中替换发言者的姓名。假设我进行了以下聊天。

詹姆斯:你在做什么? 丽莎:没什么 马库斯马:我也是。

我想使用preg_replace它就像这样。

詹姆斯:你在做什么? 丽莎:没什么 Marcus Ma:我也是。

我已经尝试了,但这里是我得到的

詹姆斯:你在做什么? 丽莎:没什么 马库斯马:我也是。

请检查我的代码并告诉我什么是错的,非常感谢

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

3 个答案:

答案 0 :(得分:1)

将此部分(\w+:)更改为此([\w\s]+:)

它将包含空格\s

还要设置您只想在开头与^匹配。

结果将是:

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

希望它有所帮助。

答案 1 :(得分:0)

你应该使用这个:

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

如果名称包含任何非单词字符,将会有所帮助。

答案 2 :(得分:0)

我认为这就是你要找的东西,希望这会有所帮助

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