Я просматриваю файлы и данные нашего старого сайта, на которые в течение 10 лет поступают электронные письма и переписка наших членов.
Я извлекаю все адреса электронной почты (и испорченные записи электронной почты) и добавляю их на наши новые сайты. Db.
Это была попытка новичка cms, без проверки и подтверждения ошибок.
Итак, у меня проблемы с сопоставлением писем с пробелами и двойным @.
джем @ спа ces1.com
jam @ spac es2.com
варенье @@ doubleats.org
Я создал это свободное регулярное выражение, которое преднамеренно допускает целую кучу неправильных форматов электронной почты, но вышеприведенные три являются примерами тех, которые я не могу выяснить.
Вот мой текущий «рабочий» код:
$pattern1= '([\s]*)([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*([ ]+|)@([ ]+|)([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,}))([\s]*)';
$pattern2='\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b';
$pattern="/$pattern1|$pattern2/i";
$isago = preg_match_all($pattern,$text,$matches);
if ($isago) {.......
Мне нужен другой шаблон, который позволил бы использовать три приведенных выше примера электронной почты в качестве адресов электронной почты. (фактическая проверка происходит позже)
Кроме того, есть ли другие шаблоны, которые я мог бы использовать, которые позволили бы мне распознать возможные электронные письма в файлах?
Спасибо за любую помощь.