Парсинг текста по регулярным выражениям

Материал относится к приложению «crm_robots_2_0_ai».

Парсинг текста по регулярным выражениям

Помогает извлекать значения из текста по заданным шаблонам, когда нужен предсказуемый результат без ручной обработки.

Робот полезен в сценариях, где текст приходит в относительно понятном формате и из него нужно стабильно вытащить конкретные фрагменты.

Когда полезен:

• вытащить номер телефона;

• вытащить email;

• вытащить артикул, номера договора, сумму, ИНН, дату и и других значений.

Что дает робот:

Позволяет быстро выделять нужные данные по шаблону.

Помогает автоматизировать разбор однотипных заявок и сообщений.

Снижает количество ручных проверок при заполнении CRM.

Параметры: исходный текст и один или несколько шаблонов поиска.

Возвращает: найденные значения по каждому шаблону и статус выполнения.


50 примеров регулярных выражений для извлечения данных

Номера и идентификаторы

  • **Номер заказа**: `/Номер заказа:\s*(\d+)/ui`
  • **Код товара**: `/Код товара:\s*([A-Z0-9-]+)/ui`
  • **Артикул**: `/Артикул:\s*([^\s\n]+)/ui`
  • **ID клиента**: `/ID клиента:\s*(\d+)/ui`
  • **Номер счета**: `/Счет №\s*(\d+)/ui`
  • **Номер договора**: `/Договор №\s*([^\s\n]+)/ui`
  • **Трек-номер**: `/Трек-номер:\s*([A-Z0-9]{10,})/ui`
  • **Номер накладной**: `/Накладная №\s*(\d+)/ui`
  • **Серийный номер**: `/S\/N:\s*([A-Z0-9-]+)/ui`
  • **Инвентарный номер**: `/Инв\. №\s*(\d+)/ui`

Суммы и цены

  • **Общая сумма**: `/Итого:\s*([0-9\s]+(?:\.\d{2})?)\s*руб/ui`
  • **Стоимость доставки**: `/Доставка:\s*([0-9\s]+(?:\.\d{2})?)\s*руб/ui`
  • **Скидка**: `/Скидка:\s*([0-9\s]+(?:\.\d{2})?)\s*%/ui`
  • **НДС**: `/НДС:\s*([0-9\s]+(?:\.\d{2})?)\s*руб/ui`
  • **Цена за единицу**: `/Цена:\s*([0-9\s]+(?:\.\d{2})?)/ui`
  • **Общая стоимость услуг**: `/Услуги:\s*([0-9\s]+(?:\.\d{2})?)/ui`
  • **Предоплата**: `/Предоплата:\s*([0-9\s]+(?:\.\d{2})?)/ui`
  • **К доплате**: `/К доплате:\s*([0-9\s]+(?:\.\d{2})?)/ui`
  • **Комиссия**: `/Комиссия:\s*([0-9\s]+(?:\.\d{2})?)/ui`
  • **Стоимость материалов**: `/Материалы:\s*([0-9\s]+(?:\.\d{2})?)/ui`

Контактные данные

  • **Телефон**: `/Тел\.:?\s*(\+7\d{10})/ui`
  • **Email**: `/E-mail:\s*([a-zA-Z0-9._%±]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})/ui`
  • **ФИО**: `/ФИО:\s*([А-Яа-яёЁ\s]+)/ui`
  • **Имя**: `/Имя:\s*([А-Яа-яёЁ]+)/ui`
  • **Фамилия**: `/Фамилия:\s*([А-Яа-яёЁ]+)/ui`
  • **Отчество**: `/Отчество:\s*([А-Яа-яёЁ]+)/ui`
  • **Должность**: `/Должность:\s*([А-Яа-яёЁ\s]+)/ui`
  • **Организация**: `/Организация:\s*([^\n]+)/ui`
  • **ИНН**: `/ИНН:\s*(\d{10,12})/ui`
  • **КПП**: `/КПП:\s*(\d{9})/ui`

Адреса и местоположение

  • **Адрес доставки**: `/Адрес доставки:\s*([^\n]+)/ui`
  • **Город**: `/Город:\s*([А-Яа-яёЁ\s-]+)/ui`
  • **Индекс**: `/Индекс:\s*(\d{6})/ui`
  • **Область**: `/Область:\s*([А-Яа-яёЁ\s]+)/ui`
  • **Регион**: `/Регион:\s*([А-Яа-яёЁ\s]+)/ui`
  • **Улица**: `/Улица:\s*([^\n,]+)/ui`
  • **Дом**: `/Дом:\s*(\d+[А-Яа-я]?)/ui`
  • **Квартира**: `/Кв\.\s*(\d+)/ui`
  • **Офис**: `/Офис:\s*(\d+)/ui`
  • **Этаж**: `/Этаж:\s*(\d+)/ui`

Даты и время

  • **Дата заказа**: `/Дата заказа:\s*(\d{2}\.\d{2}\.\d{4})/ui`
  • **Дата доставки**: `/Дата доставки:\s*(\d{2}\.\d{2}\.\d{4})/ui`
  • **Срок выполнения**: `/Срок:\s*(\d{1,2}\s+[а-я]+)/ui`
  • **Время**: `/Время:\s*(\d{2}:\d{2})/ui`
  • **Период**: `/Период:\s*с\s*(\d{2}\.\d{2}\.\d{4})\s*по\s*(\d{2}\.\d{2}\.\d{4})/ui`
  • **Дата платежа**: `/Дата платежа:\s*(\d{2}\.\d{2}\.\d{4})/ui`
  • **Срок действия**: `/Действует до:\s*(\d{2}\.\d{2}\.\d{4})/ui`
  • **Дата создания**: `/Создано:\s*(\d{2}\.\d{2}\.\d{4})/ui`
  • **Дата обновления**: `/Обновлено:\s*(\d{2}\.\d{2}\.\d{4})/ui`
  • **Дедлайн**: `/Дедлайн:\s*(\d{2}\.\d{2}\.\d{4})/ui`