Clojure:
Tekstin etsiminen ja korvaaminen
How to:
Clojurissa käytetään clojure.string/replace
funktiota tekstinkorjaukseen. Tässä pari esimerkkiä:
(require '[clojure.string :as str])
; Yksinkertainen korvaus
(str/replace "Moikka maailma" "maailma" "Clojure")
; Output: "Moikka Clojure"
; Säännöllisiin lausekkeisiin perustuva korvaus
(str/replace "Etsi numeroita 123 tästä" #"\d+" "NUMERO")
; Output: "Etsi numeroita NUMERO tästä"
Deep Dive
Tekstin etsiminen ja korvaaminen on vanha käytäntö, ulottuen editorien kuten ed ja sed varhaisiin päiviin Unix-järjestelmissä. Clojure, moderni Lispin sukupolvi, käsittelee tekstin korvauksia funktionaalisesti.
Vaihtoehtoina Clojurelle, voi käyttää toisaalta tekstieditoreita tai komentorivin työkaluja kuten sed
ja awk
. Clojure eroaa niistä immutaabilisuutensa ja laiskan evaluoinnin avulla, mikä mahdollistaa tehokkaan datankäsittelyn.
Yksityiskohdista, clojure.string/replace
voi ottaa myötä funktiot, jotka määrittävät korvauslogiikan dynaamisemmin. Esimerkiksi:
(str/replace "Joku teksti jossa on numeroita 123 ja 456"
#"\d+"
(fn [match] (str "<<" match ">>")))
; Output: "Joku teksti jossa on numeroita <<123>> ja <<456>>"