Elixir:
การค้นหาและแทนที่ข้อความ
วิธีการ:
ใน Elixir, คุณสามารถใช้โมดูล String
เพื่อการค้นหาและแทนที่ที่รวดเร็ว นี่คือวิธีทำ:
original_text = "I heart Elixir!"
# การแทนที่ธรรมดา
replaced_text = String.replace(original_text, "heart", "❤️")
IO.puts replaced_text # ผลลัพธ์: I ❤️ Elixir!
# การแทนที่ทั่วโลกด้วยรูปแบบ
replaced_text_global = String.replace(original_text, ~r/eart|Eli/, "❤️", global: true)
IO.puts replaced_text_global # ผลลัพธ์: I ❤️ ❤️xir!
# การแทนที่ไม่คำนึงถึงตัวพิมพ์ใหญ่-เล็ก
insensitive_replace = String.replace(original_text, "ELIXIR", "❤️", global: true, case_insensitive: true)
IO.puts insensitive_replace # ผลลัพธ์: I heart ❤️!
ดำดิ่งลึก
การค้นหาและแทนที่ข้อความมีอยู่มาตั้งแต่เริ่มต้นของการคอมพิวเตอร์; คิดถึง ‘ค้นหาและแทนที่’ ในเอกสาร Word, แต่สำหรับโค้ด ใน Elixir, ทุกอย่างเกี่ยวกับการจับคู่รูปแบบและการทำงานกับสตริงอย่างมีประสิทธิภาพ
ฟังก์ชัน String.replace/4
ใช้ประโยชน์จากความสามารถในการจับคู่รูปแบบของ Elixir, ทำให้คุณสามารถจับคู่ไม่เพียงแต่สตริงที่ตายตัวแต่ยังรวมถึงรูปแบบ regex, ให้ความยืดหยุ่นอย่างมาก อยู่ระหว่างทำงาน, Elixir ใช้การจัดการสตริงที่มีพลังของ Erlang, ซึ่งเป็นที่เข็มแข็งและมีประสิทธิภาพในงานประมวลผลข้อความ
ทางเลือกอื่นๆ สำหรับโมดูล String
ที่มีอยู่ ได้แก่ การเขียนฟังก์ชันของคุณเองสำหรับกรณีที่ซับซ้อนกว่า หรือการใช้ไลบรารี่ของบุคคลที่สามที่ห่อการจัดการสตริงในวิธีต่างๆ อย่างไรก็ตาม, สำหรับกรณีการใช้งานส่วนใหญ่, ฟังก์ชันที่มีอยู่จะทำงานได้โดยไม่ต้องเพิ่มการพึ่งพาเพิ่มเติม
เนื่องจากเป็นภาษาที่ไม่เปลี่ยนแปลง, จำไว้ว่าทุกฟังก์ชันแทนที่จะคืนสตริงใหม่ - ตัวฉบับไม่เปลี่ยนแปลง นี่เป็นการแตกต่างจากภาษาอื่นๆ ที่คุณอาจแก้ไขสตริงในสถานที่
ดูเพิ่มเติม
- เอกสารโมดูล
String
ของ Elixir: https://hexdocs.pm/elixir/String.html - Regex ใน Elixir: https://hexdocs.pm/elixir/Regex.html
- เรียนรู้เพิ่มเติมเกี่ยวกับการจับคู่รูปแบบใน Elixir: https://elixir-lang.org/getting-started/pattern-matching.html