Есть некоторая файловая функция «x», которая возвращает список файлов. Список файлов должен фильтроваться и в основе фильтра хочется использовать регулярное выражение.
function x($sFileMask){
…
if(preg_match($sFileMask, $sFileOfList)){
…
} // if
…
} // x
В некоторых случаях необходимо, чтобы фильтр проходили все файлы КРОМЕ, к примеру, определённого расширения.
Допустим, нужно отфильтровать все файлы, кроме тех, что имеют расширение psd. Пробовал так $sFileMask = "|([^(\.psd)])$|" и вроде бы всё ожидаемо работает, фильтр пропускает "file.gif", "file.doc". Но! НЕ пропускает не только "file.psd" но и "file.dod" (то есть одна из букв регулярного выражения на конце)
Как сделать шаблон регулярного выражения соответствующим моим входящим условиям? чтобы пропускал все файлы, кроме тех, что имеют определённое расширение?