Regex: поиск email в тексте

от автора

в , , ,
Время чтения: 2 мин.

Для поиска email-адресов в тексте можно использовать следующее регулярное выражение:

b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b

Пояснение:

  • \b — обозначает границу слова, чтобы email не был частью другого слова.
  • [A-Za-z0-9._%+-]+ — соответствует локальной части email (до символа @). Может содержать буквы, цифры, точки, подчеркивания, проценты, плюсы и дефисы.
  • @ — символ @, обязательный для email-адресов.
  • [A-Za-z0-9.-]+ — соответствует доменной части email (после @). Может содержать буквы, цифры, точки и дефисы.
  • \. — точка перед доменом верхнего уровня.
  • [A-Z|a-z]{2,} — домен верхнего уровня (например, com, ru, org). Должен содержать не менее двух букв.

Пример использования в Python:

import re

text = "Пример текста с email-адресами: user@example.com, another.email@domain.co.uk."

emails = re.findall(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b', text)

print(emails)

Вывод:

['user@example.com', 'another.email@domain.co.uk']

Это регулярное выражение охватывает большинство стандартных email-адресов, но может потребовать доработки для специфических случаев.


Вот пример использования регулярного выражения для поиска email-адресов в тексте на PHP:

<?php
$text = "Пример текста с email-адресами: user@example.com, another.email@domain.co.uk.";

// Регулярное выражение для поиска email-адресов
$pattern = '/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/';

// Поиск всех совпадений
preg_match_all($pattern, $text, $matches);

// Вывод найденных email-адресов
print_r($matches[0]);
?>

Объяснение:

  1. $pattern — регулярное выражение для поиска email-адресов.
  2. preg_match_all — функция PHP, которая ищет все совпадения с регулярным выражением в тексте.
  3. $matches — массив, в который сохраняются все найденные совпадения.

Вывод:

Array
(
    [0] => user@example.com
    [1] => another.email@domain.co.uk
)

Этот код найдет и выведет все email-адреса в тексте. Если вам нужно обработать или проверить email-адреса дополнительно, вы можете использовать полученный массив $matches[0].


Вот пример использования регулярного выражения для поиска email-адресов в тексте на JavaScript:

const text = "Пример текста с email-адресами: user@example.com, another.email@domain.co.uk.";

// Регулярное выражение для поиска email-адресов
const pattern = /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g;

// Поиск всех совпадений
const emails = text.match(pattern);

// Вывод найденных email-адресов
console.log(emails);

Объяснение:

  1. pattern — регулярное выражение для поиска email-адресов.
    • Флаг g (global) указывает, что нужно найти все совпадения в тексте, а не только первое.
  2. text.match(pattern) — метод match применяет регулярное выражение к строке и возвращает массив всех найденных совпадений.
  3. emails — массив, содержащий все найденные email-адреса.

Вывод:

['user@example.com', 'another.email@domain.co.uk']

Дополнительно:

Если нужно обработать каждый email-адрес, можно использовать цикл или метод forEach:

emails.forEach(email => {
    console.log("Найден email:", email);
});

Этот код найдет и выведет все email-адреса в тексте. Регулярное выражение можно адаптировать под конкретные требования, если это необходимо.


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Сколько будет 4 + 3?