Извлечение данных с помощью регулярных выражений
Сценарий. Из произвольного текста (комментарий документа, сообщение чата, импортированный файл) нужно извлечь номера телефонов и email-адреса.
Шаг 1. Построить регулярное выражение
Откройте Универсальные инструменты → Конструктор регулярных выражений.
Для телефона (российский формат):
\+?7\d{10}|8\d{10}
Для email:
[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}
Шаг 2. Протестировать на образце
Вставьте в поле тестирования текст:
Клиент: Иванов, тел. +79261234567
Резервный: 84951234567
Email: ivanov@example.com, buh@company.org
Конструктор подсветит все совпадения. Убедитесь, что оба номера и оба адреса найдены верно.
Шаг 3. Сгенерировать и использовать код
Процедура ИзвлечьКонтактыИзТекста(ИсходныйТекст)
ШаблонТелефон = "\+?7\d{10}|8\d{10}";
ШаблонEmail = "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}";
ВсеТелефоны = УИ_РегулярныеВыраженияКлиентСервер.НайтиВсе(
ИсходныйТекст,
ШаблонТелефон
);
ВсеEmails = УИ_РегулярныеВыраженияКлиентСервер.НайтиВсе(
ИсходныйТекст,
ШаблонEmail
);
Сообщить("Найдено телефонов: " + ВсеТелефоны.Количество());
Для каждого Тел Из ВсеТелефоны Цикл
Сообщить(" " + Тел.Значение);
КонецЦикла;
Сообщить("Найдено email: " + ВсеEmails.Количество());
Для каждого EM Из ВсеEmails Цикл
Сообщить(" " + EM.Значение);
КонецЦикла;
КонецПроцедуры
Связанные разделы
- Регулярные выражения API — полное описание методов
- Конструктор регулярных выражений — визуальный редактор