START > APPLESCRIPT > Praktische Handler > Text suchen und ersetzen

Text suchen und ersetzen

Ein AppleScript-Handler zum Suchen und Ersetzen von Texten mit Hilfe des «text item delimiters». Mit ihm können gleich ganze Listen von Zeichen oder mehrere Zeichenfolgen ersetzt oder entfernt werden, oder beides gleichzeitig. Bitte studiert mal die Beispiele im Skript. Es ist gar nicht so kompliziert, wie es vielleicht aussieht.

 

An den Beispiel-Aufrufen und -Ergebnissen könnt ihr sehen, dass es eigentlich ganz easy und effektiv ist. Ich hoffe, es ist alles selbsterklärend, ansonsten bitte einfach unten per Kommentar fragen.

 

Ganz nebenbei: AppleScript ist ja nicht gerade bekannt für seine Geschwindigkeit, aber in diesem Fall gibt es die gute Nachricht, dass die auf den «Applesscript's text item delimiters» basierenden Suchen-Ersetzen-Funktionen wirklich ausserordentlich performant sind!

   
(*
srchList bzw. replList können je als Zeichenkette (string) mit oder ohne Separator oder als Liste (Beispiel 3a, 4a) übergeben werden.

BEI ÜBERGABE ALS ZEICHENKETTE (Beispiel 1, 2, 3b, 4b)
ist Folgendes zu beachten: Sollen nur Einzel-Zeichen gegen Einzel-Zeichen getauscht werden (Beispiel 1), ist kein Separator nötig und dieser ist dann mit "" anzugeben.
Sollen mehrere Zeichenketten (strings) ersetzt werden (Beispiel 2, 3b), ist ein Separator (zwischen den strings) zu verwenden und mit anzugeben (z.B.: "|").

BEI ÜBERGABE ALS LISTE (Beispiel 3a + 4a)
ist egal, welcher Separator angegeben ist, da dieser immer auf "" zurückgesetzt wird.


INPUT-TEXT FÜR ALLE BEISPIELE IST:  "Dies ist mein wunderschöner Beispieltext"
*)
set myText to "Dies ist mein wunderschöner Beispieltext"

--     BEISPIEL 1 ---------> Ergebnis:      "dies ist mein wunderschöner beispieltext"
hohaReplacer(myText, "ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ", "abcdefghijklmnopqrstuvwxyzäöü", "") -- Einzelzeichen ohne Trennzeichen

--    BEISPIEL 2 ---------> Ergebnis:      "Dies ist mein superschoenerBeispieltext"
hohaReplacer(myText, "ö|wunder| B", "oe|super|B", "|") -- strings mit | als Trennzeichen

--    BEISPIEL 3a/3b  ---> Ergebnis:      "Dies ist ein ganz wunderschöner Mustertext"
hohaReplacer(myText, {"mein", "Beispiel"}, {"ein ganz", "Muster"}, "") -- (a) als Suchen-Liste und Ersetzen-Liste
hohaReplacer(myText, "mein@Beispiel", "ein ganz@Muster", "@") -- (b) das Gleiche als strings mit Trennzeichen @

--   BEISPIEL 4a/4b  ---> Ergebnis:      "DisistminwundrschönrBispiltxt"
hohaReplacer(myText, {"e", " "}, {"", ""}, "") -- (a) Mit Suchen/Ersetzen-Listen
hohaReplacer(myText, "e| ", "|", "|") -- (b) Das gleiche in kurz mit Trennzeichen |



-- :::::::::::::::::::::::::::::::::  hohabadu.de  :::::::::::::::::::::::::::::::::
on hohaReplacer(input, srchList, replList, separator)
   if class of srchList is string then
      set AppleScript's text item delimiters to separator
      set srchList to every text item of srchList
      set replList to every text item of replList
   else
      set AppleScript's text item delimiters to ""
   end if
   repeat with i from 1 to (count of srchList)
      set srch to item i of srchList
      set repl to item i of replList
      set AppleScript's text item delimiters to srch
      set the temp to every text item of input
      set AppleScript's text item delimiters to repl
      set input to temp as string
   end repeat
   set AppleScript's text item delimiters to ""
   return input
end hohaReplacer
 Im Scripteditor öffnen
  
Kommentar schreiben



Powered By CMSimple Design By NMuD Top