Clojure:
Ricerca e sostituzione del testo
How to:
Clojure offre funzioni potenti per cercare e sostituire. Ecco degli esempi:
; Usare `clojure.string/replace` per sostituire tutte le occorrenze di una stringa
(require '[clojure.string :as str])
(str/replace "Ciao Mondo!" "Mondo" "Clojure")
; => "Ciao Clojure!"
; Per sostituire con una regex
(str/replace "7 gatti, 3 cani, 9 anatre" #"\d" "N")
; => "N gatti, N cani, N anatre"
; Sostituire con una funzione di sostituzione
(str/replace "Ciao Mondo!" #"o" #(str (char (+ (int %) 1))))
; => "Ciaq Mpoe!"
Deep Dive
La funzione replace
ha radici in linguaggi di programmazione più antichi come Perl, famosi per la manipolazione di testo con espressioni regolari. In Clojure, clojure.string/replace
fa parte delle librerie native e gestisce sia sostituzioni semplici sia complesse con regex. Un’alternativa alla sostituzione di testo è la manipolazione di strutture dati. Questo approccio è più comune in Clojure, che tende a preferire la lavorazione di mappe, vettori e liste per le operazioni di editing dei dati.
In termini di implementazione, la sostituzione di testo in Clojure può essere tanto semplice quanto usare str/replace
, ma può anche richiedere funzioni più sofisticate come re-seq
per trovare tutte le occorrenze o re-find
per la prima occorrenza. La potenza delle espressioni regolari consente comunque la creazione di pattern di ricerca molto sofisticati, rendendo possibile la sostituzione selettiva anche in contesti complessi.
See Also
- La documentazione ufficiale di Clojure per una panoramica più approfondita delle funzioni disponibili.
- ClojureDocs, una risorsa comunitaria con esempi pratici sull’uso della funzione
replace
. - Regular-Expressions.info, per capire meglio le espressioni regolari.
- Il libro “Clojure for the Brave and True” per una guida completa che copre anche la manipolazione di stringhe.