문자열에서 따옴표 제거하기

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 "\"Hello, World!\"") ; => "Hello, World!"
(remove-single-quotes "'Hello, World!'")   ; => "Hello, World!"

단일 및 이중 따옴표를 한 번에 처리하고 싶으세요? 이것을 보세요:

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

; 샘플 사용법:
(remove-quotes "\"Hello, 'Clojure' World!\"") ; => "Hello, Clojure World!"

심층 분석

데이터가 아이의 방처럼 지저분했던 옛날에, 문자열에서 따옴표는 텍스트를 나타내는 표준이었습니다. 하지만 컴퓨터 과학이 발전함에 따라, 따옴표는 단순한 텍스트 구분자가 아닌, 프로그래밍 언어에서 문법적 역할을 수행하게 되었습니다.

Clojure는 Lisp 유산을 갖고 있으며, 다른 언어들이 할 수 있는 것처럼 따옴표를 같은 방식으로 사용하지 않습니다. 확실히 문자열을 나타내는 데 사용되지만, 리터럴을 만드는 데에도 특별한 역할을 합니다. 하지만, 문자열에서 따옴표를 제거하는 것은 시간을 초월한 작업입니다.

왜 문자열 끝부분을 그냥 자르지 않나요? 글쎄요, 그것은 마치 지나치게 애정 넘치는 할머니 할아버지 쌍처럼 문자열의 시작과 끝을 항상 껴안고 있는 따옴표를 가정하는 것입니다. 실제 세계의 데이터는 더 지저분합니다. 여기에서 정규 표현식(정규식)이 등장하여, 숨어있는 따옴표를 어디에서든지 찾아낼 수 있게 합니다.

대안이 있나요? 물론이죠, subs, trim, triml, trimr를 사용하거나 심지어 자랑하기 위해 트랜스듀서를 사용할 수도 있습니다. 하지만 정규식을 사용한 replace는 칼싸움에 광선검을 가져오는 것과 같아서 - 바로 핵심을 찌릅니다.

참고 자료

더 많은 Clojure 문자열 처리 정보를 원하시면, 이러한 정보가 도움이 될 것입니다:

따옴표 제거에만 그치지 마세요. Clojure 땅에서 발견될 수 있는 문자열 마법의 전체 세계가 있습니다.