Получи случайную криптовалюту за регистрацию!

Поиск по нескольким словам в проекте Задача. Найти в проекте | Пых

Поиск по нескольким словам в проекте

Задача. Найти в проекте все файлы, в которых есть слова 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.