Php проверить конкретный шаблон - PullRequest
0 голосов
/ 04 марта 2019

Я хочу проверить определенный шаблон в строке.Мой шаблон состоит из 3 частей:

  • Начало: Первый символ должен быть числом или алфавитом
  • Конец: Последний символ должен быть числом или алфавитом
  • Средний: Вмежду символами может быть любая комбинация цифр, алфавитов или дефиса / минуса (-) или @.

Я использую следующее регулярное выражение:

preg_match ('/ ^[a-zA-Z0-9] + [@ \ -] * [a-zA-Z0-9] + $ / i ');

и проверено на строке:

a-121kabrastreet @ 90

, что оценивается как ложное.Пожалуйста, исправьте мою логику.Спасибо

1 Ответ

0 голосов
/ 04 марта 2019

Алфавиты и цифры также должны быть добавлены к классу символов в середине.Обратите внимание, что вам не нужно экранировать дефис, если он находится в конце класса символов.

^[a-zA-Z0-9][@a-zA-Z0-9-]*[a-zA-Z0-9]$
              ^^^^^^^^^

При использовании флага без учета регистра ваш шаблон может выглядеть следующим образом:

/^[a-z0-9][@a-z0-9-]*[a-z0-9]$/i

Regex101 demo | Php demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...