Регулярное выражение для строки штрих-кода - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь декодировать строку штрих-кода в данные. Как извлечь данные из строки штрих-кода, например, GTIN, Amount, Best Before, Net Weight .. et c.? Существует ли какое-либо регулярное выражение для этого? Так есть ли какой-нибудь общий java класс или что-то для извлечения данных из строки штрих-кода .?

1 Ответ

1 голос
/ 09 марта 2020

Возможно извлечение данных с помощью регулярного выражения, для этого вы должны проверить свой AI штрих-кода по AI.

Пример: если ваш штрих-код содержит

<GTIN> <Number of units contained> <Expiration Date> <Net Weight in Kg>

  1. Ваш штрих-код должен начинаться с 01 (для GTIN), за которым следуют 14 цифр.

    • В регулярном выражении = 01\d{14}
  2. Тогда ваш штрих-код должен содержать строку 37 (количество содержащихся единиц), за которой следуют от 1 до 8 цифр и заканчиваться непечатным символом FNC1 (29 в десятичном виде, 1D) в гекса)

    • в регулярном выражении = 37\d{1,8}\x1D
  3. 17 должны следовать (Дата истечения), затем следует 6 цифр (ГГММДД)

    • в регулярном выражении = 17 \ d {6}
  4. Наконец, код должен заканчиваться на "310y" (Net Вес), за которыми следуют 6 цифр. «y» в 310y - это положение десятичного разделителя (мин. 0, макс. 5) ( Если у вас есть 3100123456, то вес составляет 123456 кг. Если у вас есть 3101123456, вес составляет 12345,6 кг ... Если у вас есть 3105123456, вес 1,23456 кг )

    • в регулярном выражении = 310[0-5]\d{6}

Итак, для этого формата штрих-кода ваш регулярное выражение было (с группой и с escape-символами):

^(01)(\\d{14})(37)(\\d{1,8})\\x1D(17)(\\d{6})(310[0-5])(\\d{6})$

Вы можете проверить все существующие коды (и их регулярные выражения) здесь: https://www.gs1.org/standards/barcodes/application-identifiers

...