Подтвердить что ты не робот

Как совместить несколько слов в регулярном выражении

Простое регулярное выражение, я не знаю, как писать.

Регулярное выражение должно убедиться, что строка соответствует всем 3 словам. Я вижу, как сделать его совпадающим с любым из 3:

/advancedbrain|com_ixxocart|p\=completed/

но мне нужно убедиться, что все 3 слова присутствуют в строке.

Вот слова

  • advancebrain
  • com_ixxocart
  • р = завершено
4b9b3361

Ответ 1

Используйте утверждения lookahead:

^(?=.*advancebrain)(?=.*com_ixxochart)(?=.*p=completed)

будет соответствовать, если присутствуют все три члена.

Возможно, вы захотите добавить границы работы \b вокруг своих условий поиска, чтобы убедиться, что они соответствуют полным словам, а не подстрокам других слов (например, advancebraindeath), если вам нужно избегать этого:

^(?=.*\badvancebrain\b)(?=.*\bcom_ixxochart\b)(?=.*\bp=completed\b)

Ответ 2

^(?=.*?p=completed)(?=.*?advancebrain)(?=.*?com_ixxocart).*$

Прошло слишком долгое тестирование и рафинирование =/О, хорошо.. По-прежнему опубликует свой ответ

Ответ 3

Используйте lookahead:

(?=.*\badvancebrain)(?=.*\bcom_ixxocart)(?=.*\bp=completed)

Заказ не имеет значения. Все три требуются.