Regex Autofelder benötigen das tools Verzeichnis. Die Funktionalität ist mit dem erweiterten Update docSysExt.exe (mit dem Suffix Ext ) enthalten. Es können z.B. Ticket-IDs, Rechnungsnummern, Firmennamen und E-Mail-Adressen automatisch aus einem OCR-Text-Feld ausgelesen werden.
Test auf: https://regexr.com/
RX <Overwrite:1|0> <Source-Field> match <Regex> <Match-Nr>
RX <Overwrite:1|0> <Source-Field> replace <Regex> <Replace-Value>
Escape Chars: "/" (Slash) und " " (Space) MÜSSEN in der Regex Expression durch entsprechende escape Chars ersetzt werden:
Zeichen | Escape-Zeichen |
---|---|
" " (Space) | \x20 |
"/" (Slash) | \x2F |
:: Beispiel für: 1. Match Ergebnis aus ocr_text
RX 0 ocr_text match <Regex> 1
:: Zeile nach Match "Rechnungsnr.":
(?<=\sRechnungsnr\.:.*\r?\n\x20*)(.*)(?=[\r\n]*)
:: Letzte Änderung (Regex): 20.06.2023 17:17 Uhr
:: Rechnungs-Nummer
RX 0 ocr_text match (?<=(?:Rechnung|Beleg|Invoice|Inv|Re\.)s?[\.\x20\-]{0,5}(?:nr|nummer|Number|reference|ref|ID|No)+?[\.\:\x20]{0,5}[\x20]{0,20})(([0-9A-Za-z_]{1,40}(?=\s(vom|v\.|\x2F)\x20([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{2,4})))|([0-9A-Za-z_]{1,40}(?=\s\s+))|([0-9A-Za-z_]{1,40}([0-9A-Za-z]{0,30}[_\-\x20\x2F]?){0,4})) 1
:. Rechnungsnummer aus einer Bank-Transaktion:
(?<=^|\s|\n(RG|Invoice|Inv|Rechnung|RE)?((\.|\-)(No|Nr|Num))?\.?\:?\x20?)(RE|INV|RG)?[0-9]{3,20}((\/|\-)[0-9]{2,20}((\/|\-)[0-9]{2,20})?)?(?=$|\s|\n|\/)
:: Normales Datum
RX 0 ocr_text match [0-9]{1,2}\.[0-9]{1,2}\.[0-9]{2,4}|[0-9]{1,2}\.?\x20\w{3,10}\.\x20[0-9]{2,4}|[0-9]{1,2}\x2F[0-9]{1,2}\x2F[0-9]{2,4} 1
:: Rechnungsdatum
RX 0 ocr_text match (?<=(?:Rechnung|Rechnungs|Beleg|Invoice|Credit\x20Note|)*?[\x20\-]{0,5}(?:Datum|Date|([0-9]{3,20}\x20?\x2F))[\.\:\x20]{0,20})([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{2,4}|[0-9]{4,4}\-[0-9]{2,2}\-[0-9]{2,2}|[0-9]{1,2}\.?\x20\w{3,10}\.?\x20[0-9]{2,4}|[0-9]{1,2}\x2F[0-9]{1,2}\x2F[0-9]{2,4}) 1
:: Lieferdatum
RX 0 ocr_text match (?<=(?:Leistung|Service|Liefer)s?[\x20\-]{0,5}(?:Datum|Date|([0-9]{3,20}\x20?\x2F))[\.\:\x20]{0,20})([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{2,4}|[0-9]{4,4}\-[0-9]{2,2}\-[0-9]{2,2}|[0-9]{1,2}\.?\x20\w{3,10}\.?\x20[0-9]{2,4}|[0-9]{1,2}\x2F[0-9]{1,2}\x2F[0-9]{2,4}) 1
:: Leistungsdatum
(?<=(?:Leistungs|Service)[\x20\-]{0,5}(?:Zeitraum|Zeitpunkt|Datum|Date)[\.\:\x20]{0,20})([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{2,4}|[0-9]{4,4}\-[0-9]{2,2}\-[0-9]{2,2}|[0-9]{1,2}\.?\x20\w{3,10}\.?\x20[0-9]{2,4}|[0-9]{1,2}\x2F[0-9]{1,2}\x2F[0-9]{2,4})(?=\s)
:: Anfrage Ticket [#DRDOC#1234]
RX 0 ocr_text match (?<=[#DRDOC#)[0-9][^]]+ 1
:: USt-Id DE12345678
RX 0 ocr_text match (?<=(\x20))[A-Z]{2}\x20?[0-9]{8,10} 1
:: IBAN
RX 0 ocr_text match (?<=IBAN:?\x20)[A-Z]{2}(?:[\x20]?[0-9]){18,20} 1
:: Firma/Kunde/Lieferanten-Name
RX 0 ocr_text match (?<=\s)([A-Za-z]{1,30}([\+\&\.\-\x20]{0,3}[A-Za-z0-9äöüß]*){0,4}\x20(Inc\.?|PLC|GmbH\x20?\&\x20Co\.?\x20?KG|GmbH|UG|KG|SE|e\.?v\.?|e\.?G\.?|Gesellschaft\x20?mbH|AG|Aktiengesellschaft|Ltd\.?))(?<!Dr\.\x20?Doc\x20?(GmbH)?)(?=\s|\,|\·|\|) 1
:: Kundennummer
RX 0 ocr_text match (?<=(Kunden|Kdn|Kd|Customer)[\.\-\x20]{0,5}(Nr|nummer|ID|No)[\.\:\x20]{0,5})([0-9\-]+) 1
:: E-Mail
RX 0 ocr_text match (?<=\s)[a-z-\.]{1,20}@[a-z-\.]{1,20}\.[a-z]{1,5}(?=\s) 1
:: E-Mail (ohne ..@drdoc.com)
RX 0 note match (?<=\s)[a-z-\.]{1,20}@[a-z-\.]{1,20}\.[a-z]{1,5}(?=\s)(?<!@drdoc\.com) 1
:: PLZ
RX 0 note match (?<=\s([a-z]{1,3}[-\x20]?)?)[0-9]{4,5}(?=\x20([a-zöäü]{2,30}[-\x20]?){1,3}\s) 1
:: PLZ (ohne 80807)
RX 0 note match (?<=\s([a-z]{1,3}[-\x20]?)?)[0-9]{4,5}(?=\x20([a-zöäü]{2,30}[-\x20]?){1,3}\s)(?<!80807) 1
:: Ort
RX 0 note match (?<=\s([a-z]{1,3}[-\x20]?)?[0-9]{4,5}\x20)([a-zöäü]{2,30}[-\x20]?){1,3}(?=\s) 1
:: Ort (ohne 80807 München)
RX 0 note match (?<!80807\x20)(?<=\s([a-z]{1,3}[-\x20]?)?[0-9]{4,5}\x20)([a-zöäü]{2,30}[-\x20]?){1,3}(?=\s) 1
:: Straße
RX 0 note match ([a-zöäüß]+\.?[\x20\-]?){1,4}(Str\.|Str|Straße|Platz|Street|Plaza)\x20[0-9]{1,3}(\-[0-9]{1,3})?[a-z]? 1
:: Straße (ohne Heinrich-Kley-Str. 2)
RX 0 note match ([a-zöäüß]+\.?[\x20\-]?){1,4}(Str\.|Str|Straße|Platz|Street|Plaza)\x20[0-9]{1,3}(\-[0-9]{1,3})?[a-z]?(?<!Heinrich-Kley-Str(\.?|aße)\x202)(?=\s) 1
:: Telephon/Phone
RX 0 note match (?<=\s)[\+\(0]([0-9\x20\-\)\–\+\x2F\(\.]){3,7}\)?[0-9\x20\-\)\–\+\x2F\(]{1,20}(?=\s)