BEDINGTE Freigabe der macOS Version Sequoia für tomedo® Alle Hinweise und Informationen finden Sie unter folgendem Link.
Hinweis: Zukünftige iOS tomedo Updates werden nur noch auf Geräten mit iOS 16 oder höher verfügbar sein.

Hallo, kann mir jemand bei diesem Apple Script helfen? Es erscheint die u.g. Fehlermeldung. Was mache ich falsch?

set the clipboard to "06||11||$[patient_name]$|$[patient_vorname]$|$[d G YYYYMMdd]$||$[kbvKassennr]$|$[kbvKrankenkasse]$|17|$[kbvVersnr]$|3|00|00|030747600|$[kbvArztnr]$|$[kbvDatum]$|X||||$[patient_plz]$|$[patient_ort]$|$[regex [\D]+ ps]$|$[regex [\d]+[a-zA-Z]+ ps]$"

Fehlermeldlung: Fehler im Apple Script:  „"“ erwartet, aber Unbekanntes Token gefunden.

Gefragt in Frage von (9.5k Punkte)
0 Punkte

2 Antworten

Der Fehler liegt in den regex-Ausdrücken. Wenn man die weglässt, kommt keine Fehlermeldung.

Es ist in AppleScript leider nicht trivial die regex-Ausdrücke einzuführen. Am besten klappt es, wenn man diese als shell skript einfügt. Auf die Schnelle habe ich es gerade auch nicht für Sie funktionierend hinbekommen. Ich schaue mal in meinen Skripten, da hatte es mal geklappt...

Das könnte ungefähr so aussehen (klappt aber so leider noch nicht ganz...):

set inputString to "$[ps]$"

on applySedPattern(inputString, pattern)
    return do shell script "echo " & quoted form of inputString & " | grep -E '" & pattern & "'"
end applySedPattern

set regexPattern to "\\d+[a-zA-Z]*" 

set result to applySedPattern(inputString, regexPattern)

display dialog "Hausnummer: " & result

Ihr Hausnummern-regex muss übrigens ein Sternchen am Ende anstatt des Plus haben:

([\d]+[a-zA-Z]*)  ## korrekt

([\d]+[a-zA-Z]+)  ## nicht ganz optimal..

Der Stern sorgt dafür, dass bei einer Zahl [\d+] auch ein Ergebnis kommt, wenn kein Buchstabe danach kommt.

Beantwortet von (7.4k Punkte)
0 Punkte
Wow. Das übersteigt mein Können um Weiten. Vielen Dank.

So: Freitags-Regex-AppleScript-Sudoku-Rätsel gelöst:

set inputString to "$[ps]$"

on extractData(inputString, pattern)
	-- Shell-Befehl mit genauer Regex
	return do shell script "echo " & quoted form of inputString & " | grep -Eo '" & pattern & "'"
end extractData


set regexPattern to "\\D+" -- Strassenname (alles ohne Zahlen, kann im extremen Ausnahmefall wie "Straße des 17. Juni" Probleme machen...)
set strassenName to extractData(inputString, regexPattern)

set regexPattern to "\\d+[a-zA-Z]?$" -- Nummer mit optionalem Buchstaben (z. B. 141a)
set hausNummer to extractData(inputString, regexPattern)

display dialog "Straße: " & strassenName -- Anzeige nur zu Testzwecken
display dialog "Hausnummer: " & hausNummer -- Anzeige nur zu Testzwecken

set the clipboard to "06||11||$[patient_name]$|$[patient_vorname]$|$[d G YYYYMMdd]$||$[kbvKassennr]$|$[kbvKrankenkasse]$|17|$[kbvVersnr]$|3|00|00|030747600|$[kbvArztnr]$|$[kbvDatum]$|X||||$[patient_plz]$|$[patient_ort]$|" & strassenName & "|" & hausNummer

Ergebnis: 

06||11||TK-Mustermann|Max Müller|19940101||||17||3|00|00|030747600|232860130|10.01.25|X||||28209|Bremen|Lüder-von-Bentheim-Straße|143

Beantwortet von (7.4k Punkte)
0 Punkte
Vielen lieben Dank !! Die Bremer haben es halt drauf ;-)
18,530 Beiträge
26,818 Antworten
48,119 Kommentare
29,487 Nutzer