Loại bỏ dấu ngoặc kép khỏi chuỗi

Clojure:
Loại bỏ dấu ngoặc kép khỏi chuỗi

Cách thực hiện:

Trong Clojure, chuỗi là bất biến, vì vậy khi chúng ta nói về “loại bỏ dấu ngoặc”, chúng ta thực sự đang nói về việc tạo ra một chuỗi mới không có dấu ngoặc. Dưới đây là cách thực hiện sử dụng clojure.string/replace:

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

; Hãy loại bỏ những dấu ngoặc kép
(defn remove-double-quotes [s]
  (str/replace s #"\"" ""))

; Và loại bỏ dấu ngoặc đơn
(defn remove-single-quotes [s]
  (str/replace s #"\'" ""))

; Ví dụ sử dụng:
(remove-double-quotes "\"Xin chào, Thế giới!\"") ; => "Xin chào, Thế giới!"
(remove-single-quotes "'Xin chào, Thế giới!'")   ; => "Xin chào, Thế giới!"

Muốn xử lý cả dấu ngoặc đơn và dấu ngoặc kép trong một lúc? Hãy xem cái này:

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

; Ví dụ sử dụng:
(remove-quotes "\"Xin chào, 'Clojure' Thế giới!\"") ; => "Xin chào, Clojure Thế giới!"

Sâu hơn nữa

Ngày xưa, khi dữ liệu còn rối bời như phòng của một đứa trẻ, dấu ngoặc trong chuỗi là điều bình thường để biểu thị văn bản. Nhưng khi khoa học máy tính phát triển, dấu ngoặc trở thành nhiều hơn chỉ là dấu giới hạn văn bản - chúng đóng vai trò cú pháp trong các ngôn ngữ lập trình.

Clojure, với di sản Lisp của mình, không sử dụng dấu ngoặc giống như một số ngôn ngữ khác có thể. Chúng chắc chắn được sử dụng để biểu thị chuỗi, nhưng chúng còn có một vai trò đặc biệt trong việc tạo ra các literal. Dù vậy, việc loại bỏ dấu ngoặc khỏi chuỗi vẫn là một nhiệm vụ không lỗi thời.

Tại sao không chỉ cắt bỏ hai đầu của chuỗi? Vâng, đó là giả sử rằng dấu ngoặc của bạn luôn ôm lấy đầu và cuối chuỗi của bạn như một cặp ông bà quá đỗi yêu thương. Dữ liệu thế giới thực thì rối bời hơn nhiều. Hãy nhắc đến regex (biểu thức chính quy), cho phép bạn nhắm vào những dấu ngoặc dù chúng nằm ở đâu.

Các phương án khác? Chắc chắn, bạn có thể trở nên tinh tế với subs, trim, triml, trimr, hoặc thậm chí transducers nếu bạn muốn khoe. Nhưng replace với regex giống như mang một thanh kiếm ánh sáng đến một trận chiến dao - nó cắt ngay vào vấn đề.

Xem thêm

Nếu bộ não của bạn đang thèm khát thêm nhiều điều tốt lành về thao tác chuỗi Clojure, những manh mối này có thể giúp:

Đừng chỉ dừng lại ở việc loại bỏ dấu ngoặc. Cả một thế giới phép thuật chuỗi đang chờ được khám phá ngoài kia trong vùng đất Clojure.