Clojure:
Eliminazione di caratteri che corrispondono a un pattern
How to:
In Clojure, usiamo clojure.string/replace per sostituire i caratteri indesiderati. Ecco come:
(require '[clojure.string :as str])
; Elimina tutti i numeri da una stringa
(defn delete-digits [s]
(str/replace s #"\d+" ""))
; Uso della funzione
(println (delete-digits "Terza1Class3"))Output:
TerzaClassUn altro esempio per rimuovere le vocali:
; Elimina tutte le vocali da una stringa
(defn delete-vowels [s]
(str/replace s #"[aeiouAEIOU]" ""))
; Uso della funzione
(println (delete-vowels "Ciao Mondo"))Output:
C MndDeep Dive
La funzione clojure.string/replace esiste da molte versioni. È basata su Java String.replaceAll, che usa espressioni regolari. In alternativa, puoi usare reduce con una sequenza di caratteri o altre funzioni core di Clojure.
Per esempio, con reduce:
(defn delete-chars [s chars-pattern]
(reduce (fn [acc char]
(str/replace acc (str char) ""))
s
chars-pattern))
(println (delete-chars "Hello World" "lo"))Output:
He WrdDettagli di implementazione: str/replace è veloce e potente grazie alle regex. C’è da fare attenzione con pattern complessi per evitare un uso eccessivo di risorse.
See Also
- ClojureDocs su
clojure.string/replace: https://clojuredocs.org/clojure.string/replace - Guida alle regex in Java (usate anche in Clojure): https://www.vogella.com/tutorials/JavaRegularExpressions/article.html
- Clojure from the ground up: strings: https://aphyr.com/posts/305-clojure-from-the-ground-up-strings