Есть несколько электронных писем регулярных выражений вопросов выскакивающих вверх здесь, и я, честно говоря, озадачен, почему люди используют эти безумно тупые сопоставление выражений, а не очень простой синтаксический анализатор, который разбивает электронную почту на токены имени и домена, а затем проверяет их на соответствие допустимым символам, разрешенным для имени (дальнейшая проверка не может быть выполнена в этой части), и действительным символам для домена (и я полагаю, вы могли бы добавить проверку для всех TLD в мире, а затем еще один уровень доменов второго уровня для стран с таким (например, com.uk)).
Настоящая проблема заключается в том, что значения tlds и slds постоянно меняются (вопреки распространенному мнению), поэтому вы должны продолжать обновлять регулярные выражения, если планируете выполнять всю эту высокоуровневую проверку всякий раз, когда корневые серверы имен отправляют изменения.
Почему бы не иметь модуль, который просто проверяет домены, который извлекает данные из базы данных или плоского файла и дополнительно проверяет DNS на соответствие записей?
Я серьезно говорю, почему все так стремятся придумать для этого идеальное регулярное выражение? Это не кажется подходящим решением проблемы ...
Убедите меня, что это не только возможно сделать в регулярном выражении (и удовлетворить всех), но и что это лучшее решение, чем собственный анализатор / валидатор.
-Adam