如何使用替换对话文本?

How to use replace for a conversation text?

我想替换聊天语句中说话人的名字。假设我有以下聊天。

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

我想用preg_replace变成这样

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

我试过了,但这是我得到的结果

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

请检查我的代码并告诉我哪里出了问题,非常感谢

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

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

它将包含空格 \s

同时设置只在开头匹配^

结果将是:

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

希望对您有所帮助。

你应该使用这个:

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

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

我想这就是您要找的,希望这对您有所帮助

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