如何区分@string和@@字符串?

时间:2015-08-31 10:47:30

标签: php regex string text

给定一个字符串

$str="hello @jake and @@tim_24 and @@mike and @frank1 and @@ali_gi and @tom";

是否可以仅在@中提取以one array开头的所有用户名,并在@@中提取以second array开头的所有用户名?

这是我迄今为止所尝试过的,

preg_match_all('~@([^\s]+)~', $str, $array);
print_r($array[0]);

问题在于,它会在一个数组@中获取每个用户名(以@@$array开头)。

2 个答案:

答案 0 :(得分:1)

你可以试试这个,

\B@@(\w+)|\B@(\w+)

DEMO

答案 1 :(得分:0)

您可以使用类似的内容:(?<!@)@([^@\s]+)(示例here)。

匹配的名称将放在第1组中。