Вы неправильно использовали классы символов ([...]
, которые соответствуют 1 символу) для группировки конструкции ((...)
, которые используются для группировки альтернатив последовательностей символов). Кроме того, вы объявляете .
по дополнительному заказу с ?
, но это не должно (согласно вашим требованиям). Кроме того, 3 или более означает, что вам нужен ограничивающий квантор {3,}
, а не {3}
(который соответствует точно 3 вхождениям квантифицированного подшаблона).
Использование
/^[A-Za-z]{3,}\.(?:pdf|doc|html)$/
См regex demo.
Или, чтобы сделать весь образец нечувствительно к регистру:
/^[a-z]{3,}\.(?:pdf|doc|html)$/i
^
детализирует Pattern:
^
- начало строки
[A-Za-z]{3,}
- 3 или более ASCII буквы
\.
- буквальная точка
(?:pdf|doc|html)
- не-группа записи соответствия либо pdf
, doc
или html
последовательность символов
$
- конец строки
Тип то, что вы имеете в https://regex101.com/ и посмотреть на то, что это означает – Quentin