@Morator

Регулярка php нужна помощь?

Всем привет.
Нужна помощь с регулярным выражением php
Например нужно проверить код:
DHDT-HDHD-DJDJ-HDTE
Тоесть 4 заглавные тире 4 заглавные тире 4 заглавные тире 4 заглавные (английские)
<php
$param =  "HDHD-IEHT-KSVR-JEVY";
$res = preg_match("[A-Z]{4}[-]{1}[A-Z]{4}[-]{1}[A-Z]{4}[-]{1}[A-Z]{4}[-]{1}", $param);

if($res! == false) {

Пропускает

} else {

Не пропускает

} 
? >

Почему у меня это не работает, что не так делаю?
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Тысяча и одна ошибка.
Во-первых, посмотрите, что функция возвращает: https://www.php.net/manual/ru/function.preg-match.php
Во-вторых, возвращает она у вас false, потому что регулярное выражение содержит ошибку - в нём нет ограничителей.
В-третьих, у вас на конце лишний дефис.

"~^(?:[A-Z]{4}-){3}[A-Z]{4}$~"
https://regex101.com/r/nB2P5E/1
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы