Одно время совокуплялся с этой темой, и, после очередного RFC, пришёл к выводу, что дальше подобного (минимум один символ, собака, минимум один символ, точка, минимум один символ) .+@.+\..+
смысла ходить нет.
А вообще регулярки не для этого. Даже регулярка выше не идеальна, она будет правильно валидировать в подавляющем большинстве случаев, но не всегда. Имейл адрес - не регулярный язык, следовательно не модет быть вылидирован регулярными выражениями. Регулярные выражения неправильный инструмент для валидирования имейла. Регулярные выражения - это инструмент, который недостаточно сложен для понимания имейл адреса. Имейл адрес не является обычным языком и поэтому не может быть проанализирован с помощью регулярных выражений. Запросы с регулярными выражениями не способны разбивать адрес имейл на его значимые части. столько раз, но меня это не касается. Даже расширенные нерегулярные регулярные выражения, используемые Perl, не справляются с задачей синтаксического анализа адреса имейл. Ты никогда не заставишь меня сломаться. Имейл адрес - это язык с достаточной сложностью, поэтому его нельзя проанализировать с помощью регулярных выражений. Даже Джон Скит не может анализировать имейл адрес с помощью регулярных выражений. Каждый раз, когда вы пытаетесь разобрать адрес имейл с помощью регулярных выражений, нечестивый ребенок плачет кровью девственниц, и индуские хакеры взламывают ваше веб-приложение. Анализ адрес имейл с помощью регулярного выражения вызывает испорченные души в царство живых. Имейл адрес и регулярное выражение идут рука об руку, как любовь, брак и ритуальное детоубийство. не может удержать это слишком поздно. Сила регулярного выражения и имейл адрес вместе в одном концептуальном пространстве разрушит ваш разум, как жидкая замазка. Если вы анализируете имейл адрес с помощью регулярного выражения, вы поддаетесь Им и их кощунственным способам, обрекающим всех нас на бесчеловечный труд для Того, чье Имя не может быть выражено в Основном Многоязычном Плане, - он приходит. Имейл адрес-regexp сжижает нервы разумного, пока вы наблюдаете, как ваша психика увядает от натиска ужаса. Синтаксические анализаторы имейл адреса на основе регулярных выражений - это рак, слишком поздно, слишком поздно, мы не можем спастись, трансформация ребенка гарантирует, что регулярное выражение поглотит всю живую ткань (кроме имейл адреса, который не может, как предсказывалось ранее), дорогой господин Помогите нам, как можно выжить в этой беде, используя регулярное выражение для синтаксического анализа имейл адреса, обрек человечество на вечность ужасных пыток и дыр в безопасности. , но более испорченный) простой взгляд на мир парсеров reg ex для имейл адреса мгновенно перенесет сознание программиста в мир непрекращающегося вопля, он приходит, ядовитая хитрая инфекция регулярных выражений поглотит ваш имейл адрес синтаксический анализатор, приложение и существование на все времена, как Visual Basic, только хуже, он приходит, он приходит, не сражается, он приходит, неуклюжее радиоизлучение, уничтожающее все возможности, HTML-теги lea͠ki̧n͘g fr̶ǫm ̡yo ͟ ur eye͢s̸ ̛l̕ik͏e liq uid pain, песня регулярного анализа опыта уберет голоса смертного человека из sp здесь, я вижу это, видите ли вы, это красиво ложь человека ВСЕ ЕЩЕ НЕ ВСЕ Я ПОТЕРЯЛ пони, он приходит, он приходит, он приходит, или проникает во все МОЕ ЛИЦО МОЕ ЛИЦО Боже, нет НЕТ НЕТ НЕТ О НΘ, останови ан * ̶͑̾̾ ̅ͫ͏̙̤g͇̫͛͆̾ͫ̑͆l͖͉̗̩̳̟̍ͫͥͨe̠̅s a̧͈͖r̽̾̈̽̾̈e n ot rè̑ͧ̌aͨl̘̝̙̃ͤ͂̾̆ ZA̡͊͠͝LGΌ ISͮ̂҉̯͈͕̹̘̱ TO͇̹̺ͅƝ̴ȳ̳ TH̘Ë͖́̉ ͠P̯͍̭O̚ N̐Y̡ H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝S̨̥̫͎̭ͯ̿̔̀ͅ
Если бы все mail-хостеры, и официальные, и корпоративные, поддерживали этот стандарт - тогда да, эта регулярка бы подошла. Но после 5-6 летнего совокупления со spamassassin и иже с ним, я пришел к выводу:
1) большинство официальных mail-хостеров клали кучу болтов на стандарт;
2) большинство неофициальных mail-серверов стандарт даже не читали;
3) часть людей, создавших очередной стандарт, предыдущие итерации не читали / клали на них болт / стандартом не считают, т.к. в группу, принявшую предыдущий стандарт, входили их конкуренты;
В результате - на выходе имеем плавающую рекомендательную херню, и выбор метода валидации почтового адреса - личное дело каждого. Большой минус в том, что с почтовыми серверами такой херни - через протокол, а самодеятельность команд почтовых сервисов, направленная на борьбу со спамом, только усугубляют картину.
Есть имейл хостеры с адресами не соответствующими RFC 5322? Как все запущено.
Так то да, ты абсолютно прав. Я лишь указал на факт невозможности написать регулярку которая проверяет валидность имейла в абсолютном соответствии со стандартом.
Так то, если творится такая неразбериха, то логичнее как можно более минимизировать ложно отрицательные срабатывания, при умеренном колличестве ложно положительных, что предложенный тобой вариант выше и делает.
Регулярки охуенны и очень упрощают жизнь всем, кто работает с данными.
Совершенно не обязательно для этого быть программистом, Notepad++ и все системы веб-аналитики тоже поддерживают регулярные выражения.
Потому что нормальный, и достаточно сильный механизм.
Проблемы с регулярками обычно начинаются тогда, когда они попадают в руки долбоебов. Но тут не в регулярках дело.
One morning you wake up find out you have access to God’s developer console. What’s the first thing you do with this power?
Discussion
♦ 154 + W 479 & Share
^ BEST COMMENTS ▼
I like forks • 5h
hehe3301 • 7h
sudo rm -rf oceans/*/contents/
*.plástic
sudo rm -rf people/*/*.cáncer sudo rm -rf v
эта кстати тоже неправильная
.+@.+\..+
смысла ходить нет.
(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
(Взято от сюда https://emailregex.com/)
А вообще регулярки не для этого. Даже регулярка выше не идеальна, она будет правильно валидировать в подавляющем большинстве случаев, но не всегда. Имейл адрес - не регулярный язык, следовательно не модет быть вылидирован регулярными выражениями. Регулярные выражения неправильный инструмент для валидирования имейла. Регулярные выражения - это инструмент, который недостаточно сложен для понимания имейл адреса. Имейл адрес не является обычным языком и поэтому не может быть проанализирован с помощью регулярных выражений. Запросы с регулярными выражениями не способны разбивать адрес имейл на его значимые части. столько раз, но меня это не касается. Даже расширенные нерегулярные регулярные выражения, используемые Perl, не справляются с задачей синтаксического анализа адреса имейл. Ты никогда не заставишь меня сломаться. Имейл адрес - это язык с достаточной сложностью, поэтому его нельзя проанализировать с помощью регулярных выражений. Даже Джон Скит не может анализировать имейл адрес с помощью регулярных выражений. Каждый раз, когда вы пытаетесь разобрать адрес имейл с помощью регулярных выражений, нечестивый ребенок плачет кровью девственниц, и индуские хакеры взламывают ваше веб-приложение. Анализ адрес имейл с помощью регулярного выражения вызывает испорченные души в царство живых. Имейл адрес и регулярное выражение идут рука об руку, как любовь, брак и ритуальное детоубийство. не может удержать это слишком поздно. Сила регулярного выражения и имейл адрес вместе в одном концептуальном пространстве разрушит ваш разум, как жидкая замазка. Если вы анализируете имейл адрес с помощью регулярного выражения, вы поддаетесь Им и их кощунственным способам, обрекающим всех нас на бесчеловечный труд для Того, чье Имя не может быть выражено в Основном Многоязычном Плане, - он приходит. Имейл адрес-regexp сжижает нервы разумного, пока вы наблюдаете, как ваша психика увядает от натиска ужаса. Синтаксические анализаторы имейл адреса на основе регулярных выражений - это рак, слишком поздно, слишком поздно, мы не можем спастись, трансформация ребенка гарантирует, что регулярное выражение поглотит всю живую ткань (кроме имейл адреса, который не может, как предсказывалось ранее), дорогой господин Помогите нам, как можно выжить в этой беде, используя регулярное выражение для синтаксического анализа имейл адреса, обрек человечество на вечность ужасных пыток и дыр в безопасности. , но более испорченный) простой взгляд на мир парсеров reg ex для имейл адреса мгновенно перенесет сознание программиста в мир непрекращающегося вопля, он приходит, ядовитая хитрая инфекция регулярных выражений поглотит ваш имейл адрес синтаксический анализатор, приложение и существование на все времена, как Visual Basic, только хуже, он приходит, он приходит, не сражается, он приходит, неуклюжее радиоизлучение, уничтожающее все возможности, HTML-теги lea͠ki̧n͘g fr̶ǫm ̡yo ͟ ur eye͢s̸ ̛l̕ik͏e liq uid pain, песня регулярного анализа опыта уберет голоса смертного человека из sp здесь, я вижу это, видите ли вы, это красиво ложь человека ВСЕ ЕЩЕ НЕ ВСЕ Я ПОТЕРЯЛ пони, он приходит, он приходит, он приходит, или проникает во все МОЕ ЛИЦО МОЕ ЛИЦО Боже, нет НЕТ НЕТ НЕТ О НΘ, останови ан * ̶͑̾̾ ̅ͫ͏̙̤g͇̫͛͆̾ͫ̑͆l͖͉̗̩̳̟̍ͫͥͨe̠̅s a̧͈͖r̽̾̈̽̾̈e n ot rè̑ͧ̌aͨl̘̝̙̃ͤ͂̾̆ ZA̡͊͠͝LGΌ ISͮ̂҉̯͈͕̹̘̱ TO͇̹̺ͅƝ̴ȳ̳ TH̘Ë͖́̉ ͠P̯͍̭O̚ N̐Y̡ H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝S̨̥̫͎̭ͯ̿̔̀ͅ
https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags
1) большинство официальных mail-хостеров клали кучу болтов на стандарт;
2) большинство неофициальных mail-серверов стандарт даже не читали;
3) часть людей, создавших очередной стандарт, предыдущие итерации не читали / клали на них болт / стандартом не считают, т.к. в группу, принявшую предыдущий стандарт, входили их конкуренты;
В результате - на выходе имеем плавающую рекомендательную херню, и выбор метода валидации почтового адреса - личное дело каждого. Большой минус в том, что с почтовыми серверами такой херни - через протокол, а самодеятельность команд почтовых сервисов, направленная на борьбу со спамом, только усугубляют картину.
Так то да, ты абсолютно прав. Я лишь указал на факт невозможности написать регулярку которая проверяет валидность имейла в абсолютном соответствии со стандартом.
Так то, если творится такая неразбериха, то логичнее как можно более минимизировать ложно отрицательные срабатывания, при умеренном колличестве ложно положительных, что предложенный тобой вариант выше и делает.
нужно верифицировать
Считается, что этот шаг "перейдите в емейл и пройдите по ссылке" - плохой пользовательский опыт и потеря пользователя.
Так что к валидации требования повыше стали.
Совершенно не обязательно для этого быть программистом, Notepad++ и все системы веб-аналитики тоже поддерживают регулярные выражения.
Проблемы с регулярками обычно начинаются тогда, когда они попадают в руки долбоебов. Но тут не в регулярках дело.
https://regex101.com/
Применяет регулярку построчно, а не на весь текст, поэтому выражение можно тестировать очень большой выборкой на ходу.
https://www.debuggex.com/