Поиск по нескольким словам в проектеЗадача. Найти в проекте все файлы, в которых есть слова employee и department (обязательно оба в любом порядке).
Пишите в комментариях, как вы бы решали эту задачу. Я расскажу, как найти файлы с использованием поиска по регулярному выражению в PhpStorm.
В RegEx можно по-разному обозначить подстроку, но только lookahead и lookbehind позволяют комбинировать условия без определённого порядка. Получается следующий паттерн:
^(?=.*\bemployee\b)(?=.*\bdepartment\b).*$
(?=) — positive lookahead, \b — граница слова, .* — любой символ.
Однако в таком виде в PhpStorm паттерн не сработает, потому что в интерпертации IDE . не включает символ новой строки. Поэтому заменяем . на [\s\S] (любой пробельный или непробельный символ) и получаем рабочий шаблон:
^(?=[\s\S]*\bemployee\b)(?=[\s\S]*\bdepartment\b)[\s\S]*$
Паттерн легко расширяется для поиска любого кол-ва слов.
Источники:
• https://stackoverflow.com/a/4389683,
• https://bit.ly/3LeMPa9.