Полное руководство по проверке списка электронных писем с помощью Regex

В этой статье мы рассмотрим различные методы проверки списка адресов электронной почты, разделенных запятыми, с использованием регулярных выражений (регулярных выражений). Независимо от того, создаете ли вы форму, обрабатываете вводимые пользователем данные или работаете с данными электронной почты, крайне важно обеспечить достоверность адресов электронной почты. Мы рассмотрим различные подходы, попутно предоставляя примеры кода. Итак, давайте углубимся и овладеем искусством проверки электронной почты!

Метод 1: разделение и проверка
Один простой метод — разделить входную строку запятыми, а затем проверить каждое электронное письмо индивидуально. Вот пример на Python:

import re
def validate_email(email):
    pattern = r'^[\w\.-]+@[\w\.-]+\.\w+$'
    return re.match(pattern, email)
def validate_email_list(email_list):
    emails = email_list.split(',')
    for email in emails:
        email = email.strip()
        if validate_email(email):
            print(f"{email} is valid.")
        else:
            print(f"{email} is invalid.")
# Usage
email_list = "john@example.com, jane@example.com, invalid_email"
validate_email_list(email_list)

Метод 2: использование опережающего просмотра регулярных выражений
Другой подход заключается в использовании опережающего просмотра регулярных выражений для сопоставления адресов электронной почты, разделенных запятыми. Этот метод позволяет вам проверить весь список адресов электронной почты с помощью одного шаблона регулярного выражения. Вот пример на JavaScript:

function validateEmailList(emailList) {
  const pattern = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;
  const regex = new RegExp(`^(${pattern.source},\\s*)*${pattern.source}$`);
  return regex.test(emailList);
}
// Usage
const emailList = "john@example.com, jane@example.com, invalid_email";
console.log(validateEmailList(emailList));

Метод 3: использование разделения и фильтрации
В некоторых случаях вам может потребоваться извлечь из списка только действительные адреса электронной почты. Это можно сделать, объединив метод split()с функцией filter(). Вот пример на Java:

import java.util.Arrays;
import java.util.regex.Pattern;
public class EmailValidation {
    public static void validateEmailList(String emailList) {
        String[] emails = emailList.split(",");
        Pattern pattern = Pattern.compile("^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$");
        String[] validEmails = Arrays.stream(emails)
                .map(String::trim)
                .filter(email -> pattern.matcher(email).matches())
                .toArray(String[]::new);
        System.out.println("Valid emails: " + Arrays.toString(validEmails));
    }
// Usage
    public static void main(String[] args) {
        String emailList = "john@example.com, jane@example.com, invalid_email";
        validateEmailList(emailList);
    }
}

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