Письмо информатора PaperOffice
Письмо информатора PaperOffice
Мы хотим стать друзьями

Максимально возможные предложения со скидками.

Исключительные новости из первых рук

Бесплатные бонусные обновления

Максимально возможные предложения со скидками.

Исключительные новости из первых рук

Бесплатные бонусные обновления

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

blog

Как извлечь информацию из моего документа с помощью REGEX?

Практические примеры

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

Ниже мы создали образец документа, в котором есть определенная дата. В этом документе есть счет-фактура. Шаблон даты в нашем документе форматируется следующим образом:

PaperOffice Rechnung mit Regex zu auslesen
Informationen automatisiert aus Rechnungen extrahieren

Месяц, состоящий из букв, причем первая буква всегда заглавная, за которым следует пробел, затем день, за которым следует запятая, еще один пробел и затем год.

Например: Sep 20, 2019 или Mär 05, 2022


Чтобы извлечь эту дату, мы можем использовать следующее регулярное выражение (REGEX):

([A-Z][a-zä]{2})\s(0[1-9]|[12][0-9]|3[01]),\s(20\d{2})

Разделим выражение по группам. Группы разделяются простыми скобками ().

В первой группе мы ищем 3 буквы месяца: ([A-Z][a-zä]{2})

([A-Z][a-zä]{2})\s(0[1-9]|[12][0-9]|3[01]),\s(20\d{2})

Извлечение названия месяца

  • [A-Z] Эта строка означает, что мы ищем заглавную букву от A до Z. Например, буква «S» из Sept. Стоит отметить, что регистр учитывается отдельно.
  • [a-zä]{2} Эта строка означает, что мы ищем две строчные буквы от a до z (и ä для названия месяца на немецком языке «Marz»). Это будет р из «Sep» или ä из «Mär».

Затем мы ищем пробел с помощью этой строки: \s

([A-Z][a-zä]{2})\s(0[1-9]|[12][0-9]|3[01]),\s(20\d{2})

Извлечение дня

Во второй группе ищем обозначение дня числами: (0[1-9]|[12][0-9]|3[01])

([A-Z][a-zä]{2})\s(0[1-9]|[12][0-9]|3[01]),\s(20\d{2})

Указание на день должно разделиться на 3 разные инструкции.
Так как мы не знаем, какие даты могут присутствовать в документе, может быть первое число (01) или последнее число (31) месяца, необходимо указать соответствующие варианты.
Они разделяются символом“|”.
Пример: (1|2|3) = 1 или 2 или 3.

В квадратных скобках следует перечисление допустимых символов. Несколько квадратных скобок соответствуют нескольким символам.Если выражение описывает несколько символов, они просто объединяются вместе. Затем ввод сравнивается слева направо с вашим выражением.

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

  • 0[1-9] Эта строка означает, что число может начинаться с «0», за которым может следовать число от 1 до 9. Таким образом, мы получаем любое число от 01 до 09.
  • Строка ищет числовой шаблон, начинающийся с нуля. Если ваш документ обычно содержит дату «5 марта 2022 г.», то есть без числа «0» перед числом «5», то «0» опускается в этой строке.

  • [12][0-9] Эта строка означает, что число может начинаться с «1» или «2», за которым может следовать любое число от 0 до 9. Результатом будет любое число от 10 до 29.
  • 3[01] Эта строка означает, что число может начинаться с «3», за которым может следовать «0» или «1». Результатом может быть 30 или 31.

После определения вариантов для дня необходимо указать выражение для года.

Теперь мы ищем запятую и пробел: ,\s

([A-Z][a-zä]{2})\s(0[1-9]|[12][0-9]|3[01]),\s(20\d{2})

Извлечение года

В последней группе мы ищем год: (20\d{2})

([A-Z][a-zä]{2})\s(0[1-9]|[12][0-9]|3[01

Чтение номера заказа с помощью REGEX

В качестве дополнительного примера мы хотим извлечь номер заказа из документа.

Variablen werden aus dem Dokument ausgelesen und bereitgestellt
Auftragsnummern werden aus dem Dokument extrahiert

Номер заказа в нашем документе имеет следующий формат:

Он всегда начинается с прописных букв XYB, затем следует дефис, за ним идут 8 цифр, еще один дефис и в конце 3 случайных прописных буквы.

Примеры номеров заказов:

XYB-12316723-LSH

XYB-98456723-JRD

Чтобы извлечь этот номер заказа, мы можем использовать следующее регулярное выражение:

XYB-\d{8}-[A-Z]{3}

Давайте разберем выражение по частям.

Сначала мы ищем первые 3 прописные буквы с символом дефиса: XYB-

XYB-\d{8}-[A-Z]{3}

Затем мы ищем 8 цифр, за которыми следует еще один дефис: \d{8}-

XYB-\d{8}-[A-Z]{3}

Символ \d, как уже указано, означает цифру от 0 до 9, а \d{8} ищет восьмизначное число.

И, наконец, мы ищем 3 произвольные прописные буквы: [A-Z]{3}

XYB-\d{8}-[A-Z]{3}

Таким образом, PaperOffice из следующих номеров заказов:

XYB-12316723-LSH

XYB-98456723-JRD

XYB-975432671829

ZYB-12342176-ZHD

распознает первые два номера заказов XYB-12316723-LSH и XYB-98456723-JRD

.

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

Чтение артикульного номера с помощью REGEX

Артикульный номер в нашем документе имеет следующий формат:

Он всегда начинается с двух прописных букв, затем следует дефис, за которым идут 6 цифр.

PaperOffice Rechnung mit Regex zu auslesen
Verschiedene Artikelnummern können aus Rechnungen ausgelesen werden

Примеры артикульных номеров:

MS-863398

DS-452829

Чтобы извлечь эти артикульные номера, мы можем использовать следующее регулярное выражение:

[A-Z]{2}-\d{6}

С помощью PaperOffice вы можете цифровизировать ваши документы и интегрировать их в ваши системы для автоматизации извлечения данных из счетов и других документов, без необходимости писать и поддерживать множество кодов.

Свяжитесь с нами, чтобы обсудить ваши случаи использования и узнать больше о том, как PaperOffice может помочь вам стать еще более конкурентоспособными в цифровую эпоху.

Начните действовать, это проще, чем вы думаете.

Есть сомнения, что вы справитесь? Прочтите публикации наших клиентов о внедрении PaperOffice в ваш бизнес и убедитесь в его простоте, или просто запросите установку установку для тестирования.