Регулярное выражение для соответствия одной точке, но не двух точек?

Попытка создать шаблон регулярного выражения для проверки адреса электронной почты. Это позволит использовать точку (.), Но не более, чем рядом друг с другом.

Должен соответствовать: test.test@test.com

Не должно совпадать: test..test @ test.com

Теперь я знаю, что в Интернете есть тысячи примеров для подбора электронной почты, поэтому, пожалуйста, не отправляйте мне ссылки с полными решениями, я пытаюсь узнать здесь.

На самом деле часть, которая меня интересует больше всего, – это только локальная часть: test.test, которая должна соответствовать и проверять … тест, который не должен совпадать. Спасибо за помощь.

 $s1 = "test.test@test.com"; $s2 = "test..test@test.com"; $pattern = '/^([^\.]|([^\.])\.[^\.])*$/'; echo "$s1: ", preg_match($pattern, $s1),"<p>","$s2: ", preg_match($pattern, $s2); 

Урожайность:

 test.test@test.com: 1 test..test@test.com: 0 

Этот шов более логичен для меня:

 /[^.]([\.])[^.]/ 

И это просто. Взгляды на перспективу и внешний вид действительно полезны, поскольку они не фиксируют значения. Но в этом случае группа захвата находится только вокруг средней точки.

 strpos($input,'..') === false 

Функция strpos более проста, если `$ input 'не имеет« … »ваш тест является успешным.

 ^([^.]+\.?)+@$ 

Это должно делать то, что происходит перед @, я оставлю для вас все остальное. Обратите внимание, что вы должны оптимизировать его больше, чтобы избежать других странных настроек персонажа, но этого достаточно, чтобы ответить на то, что вас интересует

Не забывайте, что ^ и $, как я сначала сделал 🙁

Также забыл сорвать. – дурак я