Удаление кавычек из строки

Clojure:
Удаление кавычек из строки

Как:

В Clojure строки неизменяемы, так что когда мы говорим об “удалении кавычек”, на самом деле речь идет о создании новой строки без кавычек. Вот как это делается с использованием clojure.string/replace:

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

; Давайте избавимся от двойных кавычек
(defn remove-double-quotes [s]
  (str/replace s #"\"" ""))

; И выбросим одинарные кавычки
(defn remove-single-quotes [s]
  (str/replace s #"\'" ""))

; Пример использования:
(remove-double-quotes "\"Привет, Мир!\"") ; => "Привет, Мир!"
(remove-single-quotes "'Привет, Мир!'")   ; => "Привет, Мир!"

Хотите справиться и с одинарными, и с двойными кавычками одним махом? Взгляните на это:

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

; Пример использования:
(remove-quotes "\"Привет, 'Clojure' Мир!\"") ; => "Привет, Clojure Мир!"

Погружение в детали

В стародавние времена, когда данные были беспорядочнее детской комнаты, кавычки в строках были нормой для обозначения текста. Но по мере развития компьютерных наук кавычки стали больше, чем просто разделители текста — они приобрели синтаксическую роль в языках программирования.

Clojure, с его наследием Lisp, использует кавычки не так, как это могут делать некоторые другие языки. Они, конечно, используются для обозначения строк, но также имеют специальную роль в создании литералов. Тем не менее, удаление кавычек из строк остается вечной задачей.

Почему бы просто не обрезать концы строки? Ну, это предполагает, что ваши кавычки всегда обнимают начало и конец вашей строки, как пара слишком любвеобильных бабушка и дедушка. Настоящие данные намного беспорядочнее. Здесь на сцену выходят регулярные выражения (regex), которые позволяют вам целиться в кавычки, где бы они ни прятались.

Альтернативы? Конечно, вы можете похвастаться использованием subs, trim, triml, trimr, или даже трансдьюсеров, если хотите похвастаться. Но replace с regex - это как принести световой меч на драку с ножами — это идет прямо к делу.

Смотрите также

Если ваш мозг жаждет еще больше добра от манипуляции строками в Clojure, эти крошки могут помочь:

Не останавливайтесь только на удалении кавычек. В мире Clojure существует целый мир чародейства со строками, который ждет, чтобы его открыли.