Образцы для адресов электронной почты и URL

Задача
Вы хотите определить, содержится ли в значении адрес электронной почты или URL.

Решение
Используйте образец необходимого уровня строгости.

Обсуждение
В предыдущих разделах образцы использовались для идентификации таких классов значений, как числа и даты, и надо сказать, что регулярные выражения очень часто применяются именно так. Но вообще сравнение с образцом имеет настолько широкую область возможного применения, что невозможно даже просто перечислить все варианты его использования для проверки корректности данных. Для того чтобы дать общее представление о том, для каких еще типов значений может применяться сравнение с образцом, приведем в этом разделе несколько тестов для адресов электронной почты (email) и URL.

Чтобы проверить, являются ли значения адресами электронной почты, образец должен требовать как минимум наличия символа @, с двух сторон окруженного непустыми строками:

/.@./

Это минимальная проверка. Придумать общий образец, охватывающий все разрешенные значения и отбрасывающий все неразрешенные, нелегко, так что создадим хотя бы образец, налагающий чуть более строгие ограничения.Например, имя пользователя и имя домена должны не просто быть непустыми, а целиком состоять из символов, отличных от @ и пробелов:

/^[^@ ]+@[^@ ]+$/

Кроме того, можно потребовать, чтобы доменное имя состояло как минимум из двух частей, разделенных точкой:

/^[^@ ]+@[^@ .]+\.[^@ .]+/

Чтобы найти значения URL, которые начинаются с указателя протокола http://, ftp:// или mailto:, используйте дизъюнкцию, устанавливающую соответствие с любым из них в начале строки.


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

m#^(http://|ftp://|mailto:)#i

Варианты в образце группируются при помощи скобок, так как в противном случае только первый из них оказался бы закрепленным в начале строки посредством ^. Модификатор i, следующий за образцом, обозначает нечувствительность указателя протокола к регистру. Больше образец никаких ограничений не накладывает, разрешая чему угодно следовать за указателем протокола. Если хотите, можете сами выполнить дальнейшее усовершенствование этого образца.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела MySQL на эту тему:
Диагностическая утилита для LOAD DATA
Извлечение и перестановка столбцов файлов данных
Импорт XML в MySQL
Импорт с помощью LOAD DATA и утилиты mysqlimport
Импорт файлов в формате CSV

Вернуться в раздел: MySQL / 10. Импорт и экспорт данных