Søking og erstatting av tekst

Clojure:
Søking og erstatting av tekst

Hvordan:

; Finn og erstatt enkeltstående streng
(clojure.string/replace "Hei verden!" "verden" "Norge")
; => "Hei Norge!"

; Bruk regulære uttrykk for å finne og erstatte mønstre
(clojure.string/replace "Epler, bananer, kirsebær" #"[aeiou]" "-")
; => "Epl-r, b-n-n-r, k-rs-b-r"

; Gjør komplekse erstatninger med en funksjon
(clojure.string/replace "7 hunder, 3 katter" #"\d" #(str (inc (Integer/parseInt %))))
; => "8 hunder, 4 katter"

Dypdykk

Historisk sett oppsto behovet for søk og erstatning tidlig i databehandling for å håndtere tekstfiler effektivt. I Lisp-universet, som Clojure er en del av, har string-manipulasjon vært en integrert del siden 1950-tallet. Clojure forenkler prosessen med innebygde funksjoner som clojure.string/replace.

Alternativer inkluderer å bruke sed i Unix-baserte systemer, eller i et mer moderne utviklingsmiljø, innebygde metoder i teksteditorer som Emacs eller Vim.

Implementeringsdetaljer avhenger ofte av brukstilfellet. For eksempel, regulære uttrykk (regex) tillater avanserte mønstre og erstatninger, men kan være tregere med store tekstmengder. Det er også viktig å være obs på “greedy” vs “non-greedy” matching i regex, som påvirker hvilke deler av teksten som blir erstattet.

Se også