Как найти вхождение в строке «@слово слово»?
Как сделать из строки
Привет, @username lastname как твои дела? Давай @username lastname поиграем |
Привет, @username lastname как твои дела? Давай @username lastname поиграем
Массив в виде
[Привет, @username lastname, как твои дела? Давай , @username lastname, поиграем] |
[Привет, @username lastname, как твои дела? Давай , @username lastname, поиграем]
Сделал такой regex/@w+|[^@s][^s@]*(?:s+[^@s][^s@]*)*/g но он ищет только первое слово, т.е. так @username, а как подключить второе - всю голову сломал
Дополнительно:
И чем это принципиально отличается от предыдущего вопроса?
ну кроме того что использовать пробелы в «ключевых словах» это явный путь к миллиону проблем…
а как подключить второе - всю голову сломал
Я ранее Вам уже показал пример, как это можно сделать - Как найти вхождения #слово в JS?, покажите код, над которым Вы так долго ломали голову.
Но для этого не надо бить строки. Для этого надо найти юзернейм через match (намного более простой - начинается с @, заканчиванется на ",", два пробела или конец строки) и его начало через indexOf. в новую строку поместить начало и юзернейм с оберткой,от старой - отрезать по конец найденного юзернейма и повторять, пока не закончатся юзернеймы в строке. Потом хвост приделать к результату.
Хотя даже если и не надо делать обертку - вместо склеивания новой строки можно формировать массив подобным же образом в цикле.
Ответы:
(@w+s?w+).*1
что-то в этом роде?
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для того чтобы найти вхождение в строке «@слово слово», можно воспользоваться функцией preg_match() в PHP, которая позволяет использовать регулярные выражения для поиска совпадений в строке. В данном случае, мы можем использовать следующее регулярное выражение:
$string = "Пример строки @слово слово для поиска"; $pattern = "/@слово слово/"; if (preg_match($pattern, $string)) { echo "Найдено вхождение в строке"; } else { echo "Вхождение не найдено"; }
Этот код будет искать вхождение строки "@слово слово" в переменной $string и выводить сообщение о результате поиска. Регулярное выражение "/@слово слово/" указывает на то, что мы ищем именно такую последовательность символов в строке.
Если вам нужно найти вхождение строки без учета регистра, можно добавить модификатор i к регулярному выражению:
$pattern = "/@слово слово/i";
Таким образом, вы сможете находить вхождения строки независимо от регистра символов. Надеюсь, это поможет вам решить вашу проблему с поиском вхождения строки «@слово слово».