Регулярное выражение: сопоставьте слово и сохраните все остальное до пробела

#php #regex

#php #регулярное выражение

Вопрос:

Я пытаюсь использовать регулярное выражение для слов, соответствующих @food__ или #food__ в строке, чтобы я всегда сопоставлял @food или #food и любые другие буквы, следующие друг за другом, до пробела. Это дает мне ошибки:

 preg_match_all('/#/food/i', $unparsed, $parsed);
  

Кроме того, как я могу добавить такие условия, как соответствие: Еда, ЕДА и еда?

Комментарии:

1. флаг «i» дает вам возможность не учитывать регистр. Вы уже сопоставили его с включенным флагом.

2. Поскольку ни один из ответов не объясняет: ошибка, которую вы получили, связана с необработанной / косой чертой в регулярном выражении. Вы уже используете / разделители as на каждом конце регулярного выражения, поэтому использование его без исключения является синтаксической ошибкой. Однако обратная косая черта здесь # была излишней.

Ответ №1:

 preg_match_all('/[#@]foodS*/i', $unparsed, $parsed);