Moin in die Runde und spez. Frage an die Regex-Spezialisten:

ich bastel gerade an der Übernahme der Daten aus dem OTK in meine Formulare in der Praxis.

Der Ausdruck: 

\RWANN\swar\sder\sUnfall\s\S\sUhrzeit\S\S\s+([\w\W]+)\s\s\s\RWO\swar\sder\sUnfall

liefert beim String:

WANN war der Unfall - Uhrzeit?: 8 Uhr               (Anmerkung: am Ende steht ein Leerzeichen und ein Enter)

ein Leerzeichen und ein Enter
WO war der Unfall?: auf der Straße                    (Anmerkung: am Ende steht ein Leerzeichen und ein Enter)

8 Uhr

Das klappt soweit, aber ich möchte gerne das Ende vereinfachen und VOR dem Leerzeichen mit Enter aufhören.

Ich finde einfach nicht die richtige Regex dafür.

Soll also so aussehen: \RWANN\swar\sder\sUnfall\s\S\sUhrzeit\S\S\s+([\w\W]+) Leerzeichen, Enter

Wer kann mir weiterhelfen? Ich bin gespannt.

Danke und Gruß Marc

Gefragt in Frage von (1.9k Punkte)
Bearbeitet von
0 Punkte

2 Antworten

Moin,

Erster Teil:

$[regex Uhrzeit\?\:\s+([\d\s\w]+)\s\r x N 3 _ 0-7 JN NN2N NNNN _ U 0]$

Zweiter Teil:

$[regex Unfall\?\:\s+([\d\s\w]+)\s\r x N 3 _ 0-7 JN NN2N NNNN _ U 0]$

Ggf. Text zu Uhrzeit und Unfall noch länger vorgeben, je nach Treffergenauigkeit.

Beantwortet von (2.2k Punkte)
0 Punkte
hmmm

unter regex101kommt bei mir beim testen von Unfall\?\:\s+([\d\s\w]+)\s\ nichts raus....
Schauen Sie mal im Tauschcenter nach meinem BG Anamneseformular. Sieht dort so aus

$[regex \RArbeitsbeginn\s-\swann\shaben\sSie\soder\shätten\sSie\sbegonnen:\s+([\w\W]+)\s\RArbeitsende\s-\swann x OTK 1 _ inf NN NNNN NNNN _ K 0]$

Leerzeichen Enter ist \s\R
Beantwortet von (24.3k Punkte)
0 Punkte
das hab ich schon gesehen und als Grundlage benutzt, allerdings will ich wie gesagt für leichtere Anpassbarkeit des OTK das Ende des Codes anpassen...

Das oben gezeigte Beispiel funktioniert, wenn ich Ihre Fragestellung richtig verstehe, in tomedo korrekt.

Hier sieht man wieder einmal, dass regex101 und regex in tomedo sich unterschiedlich verhalten können. Z.B. führt der Operator "|" (kein i, sondern der Hochstrich als ODER-Symbol) in tomedo oft zum Absturz, was schade ist. Dieses Problem ist grundsätzlich bekannt, auch von Zollsoft werden aber noch Beispiele gesucht, um das Problem besser verstehen zu können.

Der regex Uhrzeit\?\:\s+([\d\s\w]+)\s\r ergibt in regex101 nix, bei tomedo liefert er aber "8 Uhr" für Ihren Text aus. Zumindest in Ihrem Post oben fehlte am Ende auch das "r".

Interessanterweise ergibt der regex Uhrzeit\?\:\s+([\d\s\w]+)\s\R  (also mit großem R statt mit kleinem r) in regex101 nun die gesuchten "8 Uhr", überraschenderweise auch im tomedo-regex. \r und \R verhalten sich also in tomedo-regex gleich, was ja eigentlich keinen Sinn macht, da das Großschreiben eines Tokens diesen negieren soll. Verstehe ich zwar nicht, klappt nun aber so für Ihren Fall.

Neben dem Austesten in regex101 muss man also auch immer in tomedo direkt testen. Dadurch wird das ohnehin schon kniffelige regexen nochmals kniffeliger.

Das ist nur was für Masochisten, wenn man das hinter sich gebracht hat, fühlt es sich gut an.

3-D-Schach. cool

16,088 Beiträge
23,863 Antworten
42,003 Kommentare
11,695 Nutzer