php正则表达式匹配@用户名
本文介绍了php正则表达式匹配@用户名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
需求说明:
将@小明 你好,@小李 你也好中的小明,小李提取出来
规则为@用户名 +空格
解决方案
$users = [
['id' => 1, 'name' => '小明'],
['id' => 2, 'name' => '小李'],
];
$comment = '@小明 你好,@小李 你也好中的小明,小李提取出';
$comment = preg_replace_callback('/(@)(.+?)(\s)/', function ($matches) use ($users) {
foreach ($users as $user) {
if ($matches[2] === $user['name']) {
return "<a href='/user/{$user['id']}'>@$matches[2]</a> ";
}
}
return $matches[0];
}, $comment);
var_dump($comment);
// string(111) "<a href='/user/1'>@小明</a> 你好,<a href='/user/2'>@小李</a> 你也好中的小明,小李提取出"
满意吗?
问题描述里面那个叫用户名的家伙有点屌啊。
这篇关于php正则表达式匹配@用户名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文