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

Как извлечь EAN или UPC из строки, сохранить ведущие нули, убрать подписи поставщика и проверить длину штрихкода.

Штрихкод обычно нужно хранить как текст, а не как число: иначе можно потерять ведущий ноль. Регулярное выражение помогает вытащить EAN или UPC из строки поставщика и убрать подписи вроде EAN: или barcode.

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

Извлеките штрихкод из строки

В примере правило оставляет последовательность из 12-14 цифр или EAN-8. Порядок важен: длинные варианты лучше писать перед короткими, чтобы EAN-13 не обрезался до первых 8 цифр.

Настройка извлечения штрихкода регулярным выражением в Eofferix
Действие “удалить все, кроме” оставляет найденную цифровую последовательность.
БылоПравилоСтало
EAN: 4601234567890\d{12,14}|\d{8} + удалить все, кроме4601234567890
barcode 0460001234567\d{12,14}|\d{8} + удалить все, кроме0460001234567

Какие шаблоны использовать

ТипШаблонКогда подходит
EAN-13\b\d{13}\bКогда источник должен содержать ровно 13 цифр.
UPC-A\b\d{12}\bДля 12-значных штрихкодов.
EAN-8\b\d{8}\bДля коротких 8-значных кодов.
Несколько вариантов\d{12,14}|\d{8}Когда источник может прислать разные длины.

Что важно помнить

  • Не преобразуйте штрихкод в число, если возможны ведущие нули.
  • Если в значении есть пробелы или дефисы между цифрами, сначала удалите разделители, а затем проверяйте длину.
  • Для контроля неверных кодов добавьте условия выгрузки или правило не загружать для значений, которые не проходят нужный шаблон.