Как определить весь текст, который имеет знак @ в абзаце в php

1

В моем текущем проекте php я отправляю некоторые специальные тексты, прикрепленные с помощью знака @в абзаце на задний план. Мне нужно обнаружить все слова, имеющие знак @, и принять их как массив. Я пытался с помощью следующего регулярного выражения, но он не работает, может кто-нибудь помочь мне исправить это

$text = "my text has some @signs and @names";    
preg_match_all('/(?<!\w)@\w+/', $text, $matches);
print_r($matches);
  • 5
    похоже, ваш код действительно работает: ideone.com/RvFRSA . если это не ожидаемый результат, вы должны указать, чего не хватает.
  • 2
    приведите воспроизводимый пример вместе с ожидаемым результатом.
Показать ещё 1 комментарий
Теги:
arrays
laravel-5.1

1 ответ

0

Вероятно, это не лучшее решение, если ваши тексты очень длинные, но это будет работать:

$marked = array();
foreach (explode(' ', $text) as $word) {
    if ($word[0] == '@') {
        $marked[] = $word;
    }   
}

Это приведет к:

Array
(
    [0] => @signs
    [1] => @names
)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню