2013-12-17 2 views
2

Я пытаюсь написать регулярное выражение, чтобы фильтровать необработанные файлы JavaScript из массива.Regex для фильтрации неминифицированных файлов

В настоящее время, следующее выражение работы:

array_filter($paths, function($path) { 
    return preg_match('@\[email protected]', $path) && !preg_match('@\.min\[email protected]', $path); 
}); 

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

preg_grep('SOME_REGEX_HERE', $paths); 

ответ

3

Вы можете использовать просмотра назад:

preg_match('@(?<!\.min)\[email protected]', $path); 

Здесь (?<!\.min) - отрицательный lookbehind, который гарантирует, что .js согласовывается только тогда, когда ему не предшествует .min

Смежные вопросы