การลบเครื่องหมายอัญประกาศออกจากสตริง

Clojure:
การลบเครื่องหมายอัญประกาศออกจากสตริง

วิธีการ:

ใน Clojure, สตริงเป็น immutable, ดังนั้นเมื่อเราพูดถึง “การลบเครื่องหมายอัญประกาศ,” เรากำลังพูดถึงการสร้างสตริงใหม่โดยไม่มีเครื่องหมายอัญประกาศ นี่คือวิธีการโดยใช้ 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 ของมัน, ไม่ใช้เครื่องหมายอัญประกาศในแบบที่ภาษาอื่นอาจใช้ แน่นอนว่าพวกมันใช้สำหรับการระบุสตริง, แต่พวกมันยังมีบทบาทพิเศษในการสร้าง literals อย่างไรก็ตาม, การลบเครื่องหมายอัญประกาศจากสตริงยังคงเป็นงานที่เหนือเวลา

ทำไมไม่ตัดส่วนปลายของสตริงออก? อืม, นั่นเป็นการสมมติว่าเครื่องหมายอัญประกาศของคุณมักจะกอดต้นและปลายของสตริงเหมือนคู่แกรนด์พาร์เรนต์ที่รักใคร่อย่างมาก ข้อมูลในโลกจริงเลอะเทอะกว่านั้น ใส่ regex (regular expressions), ซึ่งให้คุณเป้าหมายเครื่องหมายอัญประกาศไม่ว่าพวกมันจะซ่อนอยู่ที่ไหน

มีทางเลือกอื่นหรือไม่? แน่นอน, คุณสามารถเจ๋งกับ subs, trim, triml, trimr, หรือแม้แต่ transducers หากคุณต้องการอวด แต่ replace ด้วย regex เหมือนการนำดาบไลท์เซเบอร์ไปที่การต่อสู้ด้วยมีด - มันตัดผ่านไปยังจุดสำคัญได้ทันที

ดูเพิ่มเติม

หากสมองของคุณกำลังกระสันอยากได้ความรู้เพิ่มเติมเกี่ยวกับการจัดการสตริง Clojure, เส้นทางเหล่านี้อาจช่วยได้:

อย่าหยุดแค่การลบเครื่องหมายอัญประกาศ เมืองของการวิเศษสตริงใน Clojure-land กำลังรอให้คุณไปค้นพบ