Проверка типов файлов регулярным выражением

Ошибка синтаксиса: ошибка синтаксиса, неожиданный T_XXX

Случается, когда в неожиданном месте есть T_XXX токен , несбалансированные (лишние) круглые скобки, использование короткого тега без его активации в php.ini и т. д.

Вопросы, относящиеся:

Для получения дополнительной помощи см .:

  • http://phpcodechecker.com/ - что дает более полезные объяснения ваших синтаксических проблем.

68
задан TylerH 19 April 2019 в 20:57
поделиться

4 ответа

Ваш regex кажется немного слишком сложным, по-моему. Кроме того, помните, что точка является специальным символом, означающим "любой символ". Следующий regex должен работать (отметьте завершенные точки):

^.*\.(jpg|JPG|gif|GIF|doc|DOC|pdf|PDF)$

можно использовать инструмент как Экспресс для тестирования регулярных выражений.

150
ответ дан Dario Solera 24 November 2019 в 14:04
поделиться

Вы просто надеющийся проверять, что файл имеет данное расширение? Можно упростить то, что Вы пытаетесь сделать с чем-то вроде этого:

(.*?)\.(jpg|gif|doc|pdf)$

Затем когда Вы называете IsMatch () удостоверяются, что передали RegexOptions. IgnoreCase как Ваш второй параметр. Нет никакой причины должным быть перечислить изменения для преобразования регистра.

Редактирование: Как Dario упоминает, это не собирается работать на RegularExpressionValidator, поскольку он не поддерживает случающиеся опции.

15
ответ дан Joseph Ferris 24 November 2019 в 14:04
поделиться

Можно встроить случай insensitity в регулярное выражение как так:

\.(?i:)(?:jpg|gif|doc|pdf)$
12
ответ дан ICR 24 November 2019 в 14:04
поделиться

Ваш regexp, кажется, проверяет и имя файла и расширение. Это то, в чем Вы нуждаетесь? Я предположу, что это - просто расширение и использовало бы regexp как это:

\.(jpg|gif|doc|pdf)$

И набор соответствие, чтобы быть нечувствительным к регистру.

5
ответ дан PEZ 24 November 2019 в 14:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: