В настоящее время я пытаюсь разбить 2D-штрих-код, используя регулярное выражение для проверок ящура фармацевтических продуктов в системе c#. Штрих-код, используемый в штрих-коде матрицы данных.
Я новичок в регулярных выражениях и не имел опыта их использования, но получил фрагмент go выключен.
Проблема I Я имею в виду, что детали штрих-кода могут быть в любом порядке в следующем формате:
- 01 = Номер GTIN (фиксированный 14 di git номер)
- 10 = Пакет номер (переменная длина до 20 символов или с разделителями
x1d
) - 17 = срок годности (фиксированный 6 di git ГГММДД)
- 21 = серийный номер (переменная длина до 20 символов или с разделителями
x1d
)
В идеальном мире мы бы получили их в таком порядке, но это не всегда так.
Мы можем использовать следующий обычный выражение в указанном выше порядке:
01(\d{14})10([a-zA-Z0-9]{1,20})(\\x1d)?17(\d{6})21([a-zA-Z0-9]{1,20})(\\x1d)?
Например; https://regex101.com/r/e5cpla/1
Однако при попытке в любом порядке я не могу заставить выражение распознавать значения внутри. Я пробовал следующее, но не получил ожидаемых результатов.
(?=.*01(\d{14}))(?=.*10([a-zA-Z0-9]{1,20}))(?=.*(\\x1d)?)(?=.*17(\d{6}))(?=.*21([a-zA-Z0-9]{1,20}))(?=.*(\\x1d)?).*$
Есть ли у кого-нибудь идеи, как это сделать?