Регулярное выражение Laravel для нескольких шаблонов не работает?

Я хочу, чтобы мой шаблон регулярного выражения просто разрешал электронные письма из Борнмута с > доменом ac.uk И электронные письма от nhs с > .net или .uk Однако мне трудно заставить это работать, я попытался добавить разделитель в регулярное выражение, и он не работает, и попытался удалить «i», но это необходимо.

Регулярное выражение: 'email' => ['required', 'string', 'email', 'max:255', 'regex:/(.*)@(bournemouth)\.ac.uk/i | @(nhs)\.net|uk/i', 'unique:users'],

Попробуйте 'regex:/.*@(?:bournemouth\.ac\.uk|nhs\.(?:net|uk))/i' или просто 'regex:/@(?:bournemouth\.ac\.uk|nhs\.(?:net|uk))/i'

Wiktor Stribiżew 03.03.2019 21:02
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
148
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

я предлагаю использовать

'regex:/.*@(?:bournemouth\.ac\.uk|nhs\.(?:net|uk))/i'

Или

'regex:/@(?:bournemouth\.ac\.uk|nhs\.(?:net|uk))/i'

Подробности

  • @ - @ символ
  • (?:bournemouth\.ac\.uk|nhs\.(?:net|uk)) - групповое сопоставление без захвата
    • bournemouth\.ac\.uk - строка bournemouth.ac.uk
    • | - или
    • nhs\.(?:net|uk) - nhs., за которым следует либо net, либо uk.

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

Хорошо, ладно, гораздо понятнее, спасибо, что разобрали, я совершенно перегружен этими регулярными выражениями.

TLG123 03.03.2019 21:32

Другие вопросы по теме