PHP正则表达式匹配字符串中的多堆马赫数?

PHP正则表达式匹配字符串中的多堆马赫数?,php,regex,Php,Regex,如何为特定字符串(带引号)添加签入正则表达式,同时将其优先于包含@(\w+)的正则表达式 @webutvikler@administrator@bugfinder&utvikler@版主@chat-& forummoderator@ideutvikler 我在正则表达式检查中尝试了不同的解决方案,但是像“@bugfinder&utvikler”这样的字符串只返回“@bugfinder”,而不返回字符串的其余部分。可能是这样的? 我在[]括号内添加了\w,并包含空格&和-以使其多次匹配其中任

如何为特定字符串(带引号)添加签入正则表达式,同时将其优先于包含@(\w+)的正则表达式

@webutvikler@administrator@bugfinder&utvikler@版主@chat-& forummoderator@ideutvikler



我在正则表达式检查中尝试了不同的解决方案,但是像“@bugfinder&utvikler”这样的字符串只返回“@bugfinder”,而不返回字符串的其余部分。

可能是这样的?

我在[]括号内添加了\w,并包含空格&和-以使其多次匹配其中任何一个

编辑;您需要在输出字符串时对其进行修剪,因为字符串末尾将包含空格。

只需使用
echo trim($matches[0])或类似内容。

是在一行中还是在每个标记后都有新行?@3kbest regex按预期返回。你的其他函数有问题我发现了问题,我不得不在第一次输入时使用htmlspecialchars\u解码函数。谢谢你的帮助
<?php
$alphaUsername = array();
preg_match_all("/@(\w+)/", $input, $matches);
if (!empty($matches[1])) {
    $alphaUsername = array_map('mysql_escape', $matches[1]);
}
?>
$str = '@webutvikler @administrator @bugfinder & utvikler @moderator @chat- & forummoderator @ideutvikler';

preg_match_all('/@([\w &-]+)/', $str, $matches);