Fjerne anførselstegn fra en streng

Clojure:
Fjerne anførselstegn fra en streng

Hvordan:

I Clojure er strenger uforanderlige, så når vi snakker om “å fjerne anførselstegn,” snakker vi egentlig om å skape en ny streng uten anførselstegn. Her er det slanke med clojure.string/replace:

(require '[clojure.string :as str])

; La oss kvitte oss med disse doble anførselstegnene
(defn remove-double-quotes [s]
  (str/replace s #"\"" ""))

; Og kaste ut enkle anførselstegn
(defn remove-single-quotes [s]
  (str/replace s #"\'" ""))

; Eksempelbruk:
(remove-double-quotes "\"Hello, World!\"") ; => "Hello, World!"
(remove-single-quotes "'Hello, World!'")   ; => "Hello, World!"

Vil du håndtere både enkle og doble anførselstegn i ett fell swoop? Ta en titt på dette:

(defn remove-quotes [s]
  (str/replace s #"[\"\']" ""))

; Eksempelbruk:
(remove-quotes "\"Hello, 'Clojure' World!\"") ; => "Hello, Clojure World!"

Dypdykk

Tilbake i dagene da data var rotete som et barnerom, var anførselstegn i strenger normen for å angi tekst. Men ettersom datavitenskapen utviklet seg, ble anførselstegn mer enn bare tekstavgrensere – de tok på seg syntaktiske roller i programmeringsspråk.

Clojure, med sin Lisp-arv, bruker ikke anførselstegn på samme måte som noen andre språk kan gjøre. De brukes sikkert til å betegne strenger, men de har også en spesiell rolle i å skape literaler. Uansett forblir fjerning av anførselstegn fra strenger en tidløs oppgave.

Hvorfor ikke bare skjære av endene av en streng? Vel, det antar at dine anførselstegn alltid klemmer starten og slutten av strengen din som et par over-kjærlige besteforeldre. Virkelige data er rotete. Skriv inn regex (regulære uttrykk), som lar deg målrette disse anførselstegnene uansett hvor de gjemmer seg.

Alternativer? Klart, du kan bli fancy med subs, trim, triml, trimr, eller til og med transdusere hvis du vil vise frem. Men replace med regex er som å bringe en lyssabel til en knivkamp – det skjærer rett til jakten.

Se også

Hvis hjernen din klør etter mer Clojure-strengmanipuleringsgodhet, kan disse smuler hjelpe:

Ikke stopp med å fjerne anførselstegn. Det er en hel verden av strengmagi der ute i Clojure-landet som venter på å bli oppdaget.