【问题标题】:php tag system, get just username from @php标签系统,从@获取用户名
【发布时间】:2014-01-08 20:38:20
【问题描述】:

现在我有代码:

$msgs = preg_replace('/(?<=^|\s)@([a-z0-9_]+)/i', '$1', $msg);

让我们这么说

$msg = "@Admin Hello my friends";

上面的代码可以工作,但我只需要获取标记的名称!我只需要得到“管理员”,所有被标记的人。我该怎么做?

【问题讨论】:

  • preg_replace 代码在我需要将标记的人添加到链接时工作。这就是我使用该代码的原因:)

标签: php tags preg-replace message msg


【解决方案1】:

你可以这样做:

$msgs = preg_replace('/(?<=^|\s)@(\w+).*$/', '$1', $msg);

if (preg_match('/(?<=^|\s)@(\w+)/', $msg, $match)) {
    $msgs = $match[1];
}

如果您可以在一行中有多个@,请使用preg_match_all

preg_match_all('/(?<=^|\s)@(\w+)/', $msg, $match)

【讨论】:

  • 谢谢!它有效:) 但是你知道我怎样才能摆脱所有被标记的人吗?如果我标记两个人,也许?我需要在“while”/“loop”中使用它
  • @Johan:我不明白你,你是说一行中有多个@?还是从文件中读取所有内容?用示例相应地更新您的问题。
  • $msg = "@Admin @Webmaster 你好!";像那样!我需要离开管理员和网站管理员.. 这只是一个字符串/行
  • 谢谢!这很好用: preg_match_all('/(?
  • 所以如果我写 @.admin 和 @.hey 它将是“@.admin admin @.hey hey”
猜你喜欢
  • 1970-01-01
  • 2018-01-27
  • 2013-10-07
  • 1970-01-01
  • 2010-12-31
  • 2016-08-05
  • 2014-12-20
  • 2013-04-29
相关资源
最近更新 更多