Ниже Вы найдете регулярное выражение, который поможет проверить валидность и извлечь все подходящие email адреса из файла.
Это регулярное выражение подходит для 99% использующихся в наши дни email адресов.
В этой статье Вы найдете само регулярное выражение соответствующее email адресу, и пример того, как извлечь из файла соответствующие паттерну почтовые ящики с помощью команды grep.
Регулярное Выражение для Email Адресов
Используйте следующее регулярное выражение, чтобы найти и проверить валидность email адресов:
"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b"
Найти Все Email Адреса с Помощью Grep
Выполните следующую команду, чтобы извлечь список всех почтовый ящиков из файла:
$ grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" file.txt
Опция | Описание |
---|---|
-E, —extended-regexp | Использовать расширенное регулярное выражение |
-o, —only-matching | Печать только самих email адресов |
Thnx!
This matches way more than 99%.
On 10 million, it missed 3! That’s 99.99997%
wow! Cool info. Im new at all this but I like this command! TY.
I tried to limit the number of characters before @ without success.
For example :
grep -E -o «\b[A-Za-z0-9._%+-]{0,4}@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b»
but my results are cut !
Example :
myemail@mydomain.com => mail@mydomain.com
Any idea ?
It should be 1 char to 4 char right ?
grep -E -o “\b[A-Za-z0-9._%+-]{1,4}@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b”
{2.13} catches somename@aaaaa.demon.yy too
Может кто-нибудь подскажет реализацию, но для поиска номеров.
Т.е. первые цифры должны начинаться например с 7, +7, 8, длина должна быть 10, 11 символов.
С номерами есть 2 вот таких регулярных выражения:
Как бы их адаптировать под эту функцию, помогите пожалуйста.