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, эти крошки могут помочь:
- ClojureDocs о
clojure.string/replace
: https://clojuredocs.org/clojure.string/replace - Регулярные выражения в Clojure: https://clojure.org/guides/learn/syntax#_regex
- Взаимодействие с Java для обработки строк (Clojure работает на JVM, в конце концов): https://clojure.org/reference/java_interop#_working_with_strings
Не останавливайтесь только на удалении кавычек. В мире Clojure существует целый мир чародейства со строками, который ждет, чтобы его открыли.