1

今私はコードを持っています:

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

そう言いましょう

$msg = "@Admin Hello my friends";

上記のコードは機能しますが、タグ付けされた名前だけを取得する必要があります! タグ付けされたすべての人、「管理者」だけを取得する必要があります。それ、どうやったら出来るの?

4

1 に答える 1

1

できるよ:

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

また

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

1 行に複数指定できる場合は、 preg_match_all@を使用します。

preg_match_all('/(?<=^|\s)@(\w+)/', $msg, $match)
于 2014-01-09T08:20:58.743 に答える