
Поиск по нескольким словам в проекте
Задача. Найти в проекте все файлы, в которых есть слова
Пишите в комментариях, как вы бы решали эту задачу. Я расскажу, как найти файлы с использованием поиска по регулярному выражению в PhpStorm.
В RegEx можно по-разному обозначить подстроку, но только lookahead и lookbehind позволяют комбинировать условия без определённого порядка. Получается следующий паттерн:
Однако в таком виде в PhpStorm паттерн не сработает, потому что в интерпертации IDE
Паттерн легко расширяется для поиска любого кол-ва слов.
Источники:
• https://stackoverflow.com/a/4389683,
• https://bit.ly/3LeMPa9.
Задача. Найти в проекте все файлы, в которых есть слова
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.