Преобразования

Как получить штрихкод из текста регулярным выражением

2026-05-27
Задача

В исходном значении есть подпись и ожидаемый непрерывный кандидат из 8 либо 12–14 ASCII-цифр. Нужно оставить его как текст, сохранить ведущий ноль и не извлечь часть более длинной последовательности цифр.

Короткий ответ

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

Как сделать в Eofferix

  1. Откройте настройки итоговой колонки или узла. Название barcode — только пример: у вас поле может называться иначе. Сохраняйте результат как текст, чтобы ведущий ноль не исчез.

  2. В блоке Преобразования добавьте защитное правило: Текущее значениеНе регулярное выражение со значением (^|[^0-9])(?:[0-9]{12,14}|[0-9]{8})([^0-9]|$)Не загружать поле.

  3. Следом добавьте правило извлечения: Текущее значениеРегулярное выражение со значением (?:[0-9]{12,14}|[0-9]{8})Удалить все, кроме. Не меняйте порядок двух правил.

    Два правила безопасного извлечения кандидата штрихкода в Eofferix
    Верхнее правило очищает значение без допустимого кандидата; нижнее сохраняет первый кандидат разрешённой длины.
  4. Примените правила и проверьте примеры ниже в предпросмотре. Затем выполните небольшую тестовую выгрузку и откройте готовый файл: неподходящие значения должны быть пустыми, а подходящие — совпадать с первым найденным кандидатом.

Ожидаемый результат

Исходное значениеРезультатПочему
EAN: 40063813339314006381333931Найден отдельный кандидат из 13 цифр.
barcode 01234567890501234567890512 цифр сохранены как текст вместе с ведущим нулём.
code 1234567812345678Разрешён кандидат из 8 цифр.
1234567890123412345678901234Разрешён кандидат из 14 цифр.
123456789012345пустоНельзя извлекать 14 цифр из более длинной цифровой последовательности.
ABC-12X34пустоНет непрерывного кандидата разрешённой длины.
first 12345678 second 400638133393112345678При нескольких кандидатах сохраняется первый.

Что проверить перед выгрузкой

  • Оба шаблона используют ASCII-цифры [0-9] и допускают только длину 8 либо 12–14 цифр.
  • Цифры кандидата должны идти подряд. Если поставщик вставляет внутрь кода пробелы или дефисы, подготовьте отдельную нормализацию и заново проверьте граничные примеры.
  • При нескольких подходящих кандидатах действие Удалить все, кроме сохраняет первый.
  • Рецепт проверяет только формат и длину. Он не проверяет контрольную сумму EAN/UPC/GTIN и не подтверждает существование товара с таким кодом.

Обрабатывайте данные быстрее с Eofferix

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

Зарегистрироваться