PaperOffice Insiders Novinky
PaperOffice Insiders Novinky
Chceme sa stať priateľmi

Najvyššie možné zľavy

Exkluzívne vnútorné správy

Bezplatná bonusová aktualizácia

Najvyššie možné zľavy

Exkluzívne vnútorné správy

Bezplatná bonusová aktualizácia

Prietelstvo Dôvera Úprimnosť
Nikdy nebudeme poskytovať vašu e-mailovú adresu nikomu inému a každý e-mail obsahuje jedno kliknutie odhlásenia.

Používajte regulárne výrazy REGEX pre automatické získavanie a extrahovanie údajov (časť 2)

blog

Ako vytiahnem informácie z dokumentu pomocou REGEX?

Priklady v praxi

V tomto článku vám ukážeme, ako pomocou viacreťazcových regulárnych výrazov (REGEX) v PaperOffice vyberať akékoľvek údaje z dokumentu a automaticky ich priradiť ako kľúčové slová k dokumentu.

V nasledujúcom príklade sme vytvorili vzorový dokument, ktorý obsahuje špecifický dátum. V tomto dokumente ide o faktúru. Vzor dátumu na našom dokumente je nasledovný:

Mesiac, ktorý sa skladá z písmen, pričom prvý je vždy veľké, nasleduje medzera, potom deň, potom čiarka, ďalšia medzera a potom rok.

Napríklad: Sep 20, 2019 alebo Mär 05, 2022r.


Na extrahovanie tohto dátumu môžeme použiť nasledujúci regulárny výraz (REGEX):

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

Rozdelenie tohto výrazu na jednotlivé skupiny sa uskutočňuje pomocou zátvoriek ().

Prvá skupina hľadá trojpísmenový mesiac: ([A-Z][a-zä]{2})

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

Extrahovanie mesiaca

  • [A-Z] Táto postupnosť znakov znamená, že hľadáme veľké písmeno od A po Z. Napríklad písmeno „S“ z „Sept“. Treba si všimnúť, že veľké a malé písmena sa spracúvajú samostatne.
  • [a-zä]{2} Táto postupnosť znakov znamená, že hľadáme dve malé písmená od a po z a tiež ä (pre mesiac v nemčine „März“). Preto by to bolo „ep“ z „Sep“ alebo „är“ z nemeckého „Mär“.

Potom hľadáme medzeru pomocou tohto znakového reťazca: \s

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

Extrahovanie dňa

V druhej skupine hľadáme dátum vo formáte číslo: (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})

Zadaný pokyn pre deň musí byť rozdelený do troch rôznych častí.
Keďže nevieme, aký dátum bude v dokumente, môže to byť prvý deň (01) alebo aj posledný deň (31) v mesiaci, musia byť nastavené rôzne možnosti.
Tieto sú oddelené znakom „|“.
Príklad: (1|2|3) = 1 alebo 2 alebo 3.

V hranatých zátvorkách sa nachádza zoznam povolených znakov. Viacero hranatých zátvoriek zodpovedá viacerým znakom.Ak má výraz opisovať viac znakov, jednoducho sa postupne pripoja. Potom sa vstup porovnáva zľava doprava s vaším výrazom.

Samozrejme, nie je potrebné vždy uvádzať všetky čísla. Celý zatvorený výraz zodpovedá iba jednému znaku.

  • 0[1-9] Tento znakový reťazec znamená, že číslo môže začínať nulou, nasledované číslom od 1 do 9. Získame tak akékoľvek číslo od 01 do 09.
  • Tento znakový reťazec hľadá vzorec čísiel, ktorý začína nulou. Ak by vaša bežná dátumová hodnota v dokumente neobsahovala dátum „5. marca 2022“, teda bez nuly pred číslom „5“, nula sa zo znakového reťazca vynechá.

  • [12][0-9] Tento znakový reťazec znamená, že číslo môže začínať číslom 1 alebo 2, nasledované akýmkoľvek číslom od 0 do 9. Výsledkom môže byť akékoľvek číslo od 10 do 29.
  • 3[01] Tento znakový reťazec znamená, že číslo môže začínať číslom 3, nasledované číslom 0 alebo 1. Výsledkom môže byť 30 alebo 31.

Po definovaní možností pre číslo dňa môžeme pokračovať na určenie výrazu pre rok.

Teraz hľadáme čiarku a medzeru: ,\s

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

Čítanie čísla objednávky pomocou regulárneho výrazu

Ako ďalší príklad chceme z dokumentu odfiltrovať číslo objednávky.

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

Číslo objednávky na našom dokumente má nasledovný formát:

Začína vždy veľkými písmenami XYB, za ktorým nasleduje pomlčka, potom 8 číslic, ďalšia pomlčka a nakoniec 3 náhodné veľké písmená.

Príklady čísel objednávok by boli:

XYB-12316723-LSH

XYB-98456723-JRD

Ako extrahovať toto číslo objednávky môžeme urobiť pomocou nasledujúceho regulárneho výrazu:

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

Nechajte nás rozobrať tento výraz.

Najskôr hľadáme práve prvých 3 veľké písmená so znakom pomlčky XYB-

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

Potom hľadáme 8 číslic nasledovaných ďalšou pomlčkou \d{8}-

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

Znak \d, ako sme už opísali, znamená číslicu medzi 0 a 9, znak \d{8} znova hľadá osemciferné číslo.

Nakoniec hľadáme 3 akékoľvek veľké písmená: [A-Z]{3}

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

Takto by PaperOffice z týchto čísel objednávok:

XYB-12316723-LSH

XYB-98456723-JRD

XYB-975432671829

ZYB-12342176-ZHD

rozpoznal prvé dve XYB-12316723-LSH a XYB-98456723-JRD

.

K tomuto príkladu sme vytvorili odkaz Regex101, kde je tento regulárny výraz uvedený so 4 príkladmi. Môžete vidieť, že z uvedených čísel objednávky iba dve vyhovujú našim požiadavkám.

Čítanie čísiel položky pomocou regulárneho výrazu

Číslo položky na našom dokumente má nasledovný formát:

Začína vždy dvoma veľkými písmenami, za ktorými nasleduje pomlčka, potom 6 číslic.

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

Príklady čísiel položky by boli:

MS-863398

DS-452829

Aby sme tieto čísla položiek extrahovali, môžeme použiť nasledujúci regulárny výraz:

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

PaperOffice dokáže digitalizovať vaše dokumenty a integrovať ich do vašich systémov s cieľom automatizovať extrakciu údajov z faktúr a iných dokumentov, bez potreby písania a údržby mnohých kódov.

Kontaktujte nás a dozviete sa viac o tom, ako vám PaperOffice môže pomôcť stať sa ešte konkurencieschopnejšími v digitálnom veku.

Začať je jednoduchšie, ako si myslíte.

Máte stále obavy, že to nezvládnete? Prečítajte si prípadové štúdie našich zákazníkov o integrácii PaperOffice do vášho podnikania a presvedčte sa sami o jednoduchosti alebo jednoducho požiadajte o testovaciu inštaláciu.