我想得到里面的字符串[square] [brackets]
和那些@like @this
。以下适用于[tags]
但不适用于@users
.
$query = "[tag1] [tag2] @user1 @user2 ignoreme";
// check for tags e.g. [tag1] [tag2]
preg_match_all("/\[([^\]]+)\]/", $query, $tags);
// check for users e.g. @username
preg_match_all("/\B@[^\B]+/", $query, $users);
print_r($tags);
print_r($users);
输出:
(
[0] => Array
(
[0] => [tag1]
[1] => [tag2]
)
[1] => Array
(
[0] => tag1
[1] => tag2
)
)
Array
(
[0] => Array
(
[0] => @user1 @user2 ignoreme
)
)
该标签preg_match
正在工作,但@user 只是抓住了它之后的所有东西(甚至忽略了第二个@user2)。