$withoutExt = preg_replace('/\\.[^.\\s]{3,4}$/', '', $filename); This matches a dot followed by three or four characters which are not a dot or a space.