Выражение регулярного выражения для поиска строки, которая имеет один @ и не должна начинаться с. или закончить - PullRequest
0 голосов
/ 24 февраля 2012

Regex Выражение для поиска строки, которая имеет один @ и не должна начинаться с . или заканчиваться . Значение hello @ Same действует .hello @ Same, hello @ Same. и hello @ sdj @ same недействительны

В чем проблема в (^([^@]+)@([^@])+$)(^[^\\.].*$)(^.*[^\\.]$).

Все эти три части работают индивидуально, но когда мы соединяем вместе, не работает

Ответы [ 3 ]

1 голос
/ 24 февраля 2012
^([^.@]+)@([^.@]+)$

Чтобы разбить его на более управляемые части:

^([^.@]+)  // Start with anything except . or @
@          // @ must be somewhere in the expression
([^.@]+)$  // End with anything except . or @

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

1 голос
/ 24 февраля 2012

У вас есть несколько символов начала строки ^ и несколько символов конца строки $ в регулярном выражении.

0 голосов
/ 24 февраля 2012

Нельзя просто объединить регулярные выражения, если вы хотите сопоставить их все.

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

Регулярное выражение, соответствующее вашим требованиям, будет

^(?=[^@]+@[^@]+$)[^.].*[^.]$

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

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