El butlletí informatiu PaperOffice Insider
El butlletí informatiu PaperOffice Insider
Volem fer-nos amics

Ofertes de descompte més altes possible.

Notícies exclusives internes

Actualitzacions de bonificació gratuïtes

Ofertes de descompte més altes possible.

Notícies exclusives internes

Actualitzacions de bonificació gratuïtes

Amistat Confiança Paraula d'honor
Mai donarem la teva adreça de correu electrònic a ningú altre i cada correu electrònic inclou un enllaç per donar-te de baixa amb un sol clic.

Utilitzeu expressions regulars REGEX per a la captura i extracció automàtica de dades (Part 2)

blog

Com extragui informació del meu document amb REGEX?

Exemples pràctics

A l'article actual, us mostrem com extreure automàticament qualsevol dada del document amb expressions regulars multi-element, com PaperOffice.

A continuació us presentem un document de mostra que conté una data específica. En aquest document, es tracta d'una factura. El format de la data al nostre document és el següent:

PaperOffice Rechnung mit Regex zu auslesen
Informationen automatisiert aus Rechnungen extrahieren

Mes, format per lletres, però sempre la primera lletra en majúscula, després un espai, després el dia, una coma i un altre espai i, finalment, l'any.

Per exemple: Sep 20, 2019 o Mär 05, 2022


Per extreure aquesta data, podem utilitzar l'expressió regular (REGEX) següent:

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

Anem a desglossar l'expressió en grups individuals. Aquests grups estan separats per parèntesis simples ().

En el primer grup, busquem les 3 lletres dels mesos: ([A-Z][a-zä]{2})

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

Extreure mes

  • [A-Z] Aquesta cadena de caràcters significa que busquem una lletra majúscula d'A a Z. Per exemple, la lletra "S" de "Sept". Cal tenir en compte que és diferent entre majúscules i minúscules.
  • [a-zä]{2} Aquesta cadena de caràcters significa que busquem dues lletres minúscules de a a z i també la "ä" (per al nom del mes, en alemany "März"). Seria el "ep" de "Sep" o el "är" de "Mär" en alemany.

A continuació, busquem un espai amb la següent cadena de caràcters: \s

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

Extreure dia

En el segon grup, busquem la indicació del dia en números: (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})

La indicació del dia ha de ser diferent en tres indicacions. Com no sabem quina indicació apareixerà al document, pot ser el primer dia (01) o també l'últim dia (31) del mes, cal indicar-ho adequadament amb les diferents opcions. Aquestes opcions són separades pel caràcter "|". Exemple: (1|2|3) = 1 o 2 o 3.

Dins dels claudàtors, s'assemblen quin caràcter s'accepta. Múltiples claudàtors quadrats corresponen a múltiples caràcters. Per descriure múltiples caràcters amb una expressió, es col·loquen junts. Aleshores, la sequència proporcionada es compara amb el seu patró de l'esquerra a la dreta.

  • 0[1-9] Aquesta cadena de caràcters significa que el número pot començar amb un "0", seguit d'un número de 1 a 9. Podem obtenir qualsevol número de l'01 a l'09.

Aquesta expressió busca un patró numèric que comenci amb zero. Si el vostre document normalment conté una data de "5 de març del 2022", és a dir, sense que hi hagi un zero davant del número "5", aquest zero s'omiteix a l'expressió.

  • [12][0-9] Aquesta cadena de caràcters significa que el número pot començar amb un "1" o un "2", seguit de qualsevol número de 0 a 9. Com a resultat, pot sortir qualsevol número de l'10 al 29.
  • 3[01] Aquesta cadena de caràcters significa que el número pot començar amb un "3", seguit pel "0" o el "1". Com a resultat, podem obtenir el 30 o el 31.

Després de definir les opcions per al dia, cal determinar l'expressió per a l'any.

Ara busquem la coma i l'espai: ,\s

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

Extreure any

En l'últim grup, busquem l'any: (20\d{2})

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

Comencem buscant qualsevol any, però sabem que serà ≥ 2000.

  • 20 Aquesta cadena de caràcters significa que busquem qualsevol any començant exactament per 20.
  • \d{2} Aquesta cadena de caràcters significa que busquem un possible número de dues xifres, és a dir, de "00" a "99".

Llegir el número de comanda amb REGEX

Com a exemple més, volem llegir el número de comanda del document.

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

El número de comanda al nostre document està format de la següent manera:

Sempre comença amb les majúscules XYB, a continuació hi ha un guió, seguit de 8 dígits, un altre guió i finalment 3 lletres majúscules aleatòries.

Exemples dels números de comanda:

XYB-12316723-LSH

XYB-98456723-JRD

Per extreure aquest número de comanda, podem utilitzar l'expressió regular següent:

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

Desglosem l'expressió un a un.

Primer busquem els primers 3 caràcters majúsculs amb el símbol del guió: XYB-

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

A continuació busquem 8 dígits seguits d'un altre guió: \d{8}-

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

El caràcter \d, com ja s'ha explicat, representa un dígit del 0 al 9, i \d{8} busca un nombre de 8 dígits.

I finalment busquem 3 lletres majúscules aleatòries: [A-Z]{3}

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

Així, PaperOffice reconeixerà els dos primers números de comanda, XYB-12316723-LSH i XYB-98456723-JRD, dels següents números de comanda:

XYB-12316723-LSH

XYB-98456723-JRD

XYB-975432671829

ZYB-12342176-ZHD

Hem preparat un enllaç a Regex101 amb aquest exemple, on es mostra l'expressió regular descrita anteriorment juntament amb 4 exemples. Veureu que només dos d'aquests números de comanda compleixen els nostres requisits.

Llegir números d'articles amb REGEX

El número de l'article al nostre document està format de la següent manera:

Comença sempre amb dues lletres majúscules, a continuació hi ha un guió, seguit de 6 dígits.

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

Exemples dels números d'articles:

MS-863398

DS-452829

Per extreure aquests números d'articles, podem utilitzar l'expressió regular següent:

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

PaperOffice pot digitalitzar els vostres documents i integrar-los als vostres sistemes per automatitzar l'extracció de dades de factures i altres documents, sense haver d'escriure ni mantenir una gran quantitat de codis.

Contacteu amb nosaltres per parlar dels vostres casos d'ús i aprendre més sobre com PaperOffice pot ajudar-vos a ser més competitius en l'era digital.

Començar és més fàcil del que pensau.

Tencaveu algun dubte que no pogueu fer-ho? Llegiu els casos d'èxit dels nostres clients sobre la integració de PaperOffice a les seves operacions empresarials i convenci-vos de la simplicitat o sol·liciteu una instal·lació de prova de forma senzilla.