Ricerca e sostituzione del testo

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