В исходном значении есть подпись и ожидаемый непрерывный кандидат из 8 либо 12–14 ASCII-цифр. Нужно оставить его как текст, сохранить ведущий ноль и не извлечь часть более длинной последовательности цифр.
В блоке Преобразования добавьте два правила по порядку: сначала Не регулярное выражение с защитным шаблоном → Не загружать поле, затем Регулярное выражение с шаблоном извлечения → Удалить все, кроме. Первое правило очищает неподходящее значение, второе оставляет первый подходящий кандидат.
Как сделать в Eofferix
Откройте настройки итоговой колонки или узла. Название
barcode— только пример: у вас поле может называться иначе. Сохраняйте результат как текст, чтобы ведущий ноль не исчез.В блоке Преобразования добавьте защитное правило: Текущее значение → Не регулярное выражение со значением
(^|[^0-9])(?:[0-9]{12,14}|[0-9]{8})([^0-9]|$)→ Не загружать поле.Следом добавьте правило извлечения: Текущее значение → Регулярное выражение со значением
(?:[0-9]{12,14}|[0-9]{8})→ Удалить все, кроме. Не меняйте порядок двух правил.
Верхнее правило очищает значение без допустимого кандидата; нижнее сохраняет первый кандидат разрешённой длины. Примените правила и проверьте примеры ниже в предпросмотре. Затем выполните небольшую тестовую выгрузку и откройте готовый файл: неподходящие значения должны быть пустыми, а подходящие — совпадать с первым найденным кандидатом.
Ожидаемый результат
| Исходное значение | Результат | Почему |
|---|---|---|
EAN: 4006381333931 | 4006381333931 | Найден отдельный кандидат из 13 цифр. |
barcode 012345678905 | 012345678905 | 12 цифр сохранены как текст вместе с ведущим нулём. |
code 12345678 | 12345678 | Разрешён кандидат из 8 цифр. |
12345678901234 | 12345678901234 | Разрешён кандидат из 14 цифр. |
123456789012345 | пусто | Нельзя извлекать 14 цифр из более длинной цифровой последовательности. |
ABC-12X34 | пусто | Нет непрерывного кандидата разрешённой длины. |
first 12345678 second 4006381333931 | 12345678 | При нескольких кандидатах сохраняется первый. |
Что проверить перед выгрузкой
- Оба шаблона используют ASCII-цифры
[0-9]и допускают только длину 8 либо 12–14 цифр. - Цифры кандидата должны идти подряд. Если поставщик вставляет внутрь кода пробелы или дефисы, подготовьте отдельную нормализацию и заново проверьте граничные примеры.
- При нескольких подходящих кандидатах действие Удалить все, кроме сохраняет первый.
- Рецепт проверяет только формат и длину. Он не проверяет контрольную сумму EAN/UPC/GTIN и не подтверждает существование товара с таким кодом.