В моем текущем проекте php я отправляю некоторые специальные тексты, прикрепленные с помощью знака @в абзаце на задний план. Мне нужно обнаружить все слова, имеющие знак @, и принять их как массив. Я пытался с помощью следующего регулярного выражения, но он не работает, может кто-нибудь помочь мне исправить это
$text = "my text has some @signs and @names";
preg_match_all('/(?<!\w)@\w+/', $text, $matches);
print_r($matches);
Вероятно, это не лучшее решение, если ваши тексты очень длинные, но это будет работать:
$marked = array();
foreach (explode(' ', $text) as $word) {
if ($word[0] == '@') {
$marked[] = $word;
}
}
Это приведет к:
Array
(
[0] => @signs
[1] => @names
)