我想在聊天句子中替换发言者的姓名。假设我进行了以下聊天。
詹姆斯:你在做什么? 丽莎:没什么 马库斯马:我也是。我想使用preg_replace它就像这样。
詹姆斯:你在做什么? 丽莎:没什么 Marcus Ma:我也是。
我已经尝试了,但这里是我得到的
詹姆斯:你在做什么? 丽莎:没什么 马库斯马:我也是。
请检查我的代码并告诉我什么是错的,非常感谢
preg_replace("/(\w+:)/i","<b>$1</b> ", $text);
答案 0 :(得分:1)
将此部分(\w+:)
更改为此([\w\s]+:)
。
它将包含空格\s
。
还要设置您只想在开头与^
匹配。
结果将是:
preg_replace("/^([\w\s]+:)/i","<b>$1</b> ", $text);
希望它有所帮助。
答案 1 :(得分:0)
你应该使用这个:
preg_replace("/^([^\:]+\:)/i","<b>$1</b> ", $text);
如果名称包含任何非单词字符,将会有所帮助。
答案 2 :(得分:0)
我认为这就是你要找的东西,希望这会有所帮助
preg_replace('/^(.+:)\s([\w\s?]+)/i','<b>$1</b> <em>$2</em>',$str);