Регулярное выражение будет примерно таким (для трехбуквенного расширения):
^[^/?*:;{}\\]+\.[^/?*:;{}\\]{3}$
PHP требуется экранирование обратной косой черты, а preg_match()
необходимо экранирование прямой косой черты, поэтому:
$pattern = "/^[^\\/?*:;{}\\\\]+\\.[^\\/?*:;{}\\\\]{3}$/";
Чтобы соответствовать именам файлов, таким как "hosts"
или ".htaccess"
, используйте это слегка измененное выражение:
^[^/?*:;{}\\]*\.?[^/?*:;{}\\]+$