Elixir:
การลบตัวอักษรที่ตรงกับรูปแบบ
วิธีการ:
ใน Elixir, ใช้ฟังก์ชั่น String.replace/4
เพื่อลบอักขระที่ตรงกับแบบแผน ดูตัวอย่างเหล่านี้:
# ลบตัวเลขออกจากสตริง
original_string = "Elixir2023Rocks!"
clean_string = String.replace(original_string, ~r/\d/, "")
IO.puts(clean_string) # ผลลัพธ์: "ElixirRocks!"
# ลบเครื่องหมายวรรคตอน
punctuationless_string = String.replace(original_string, ~r/[[:punct:]]/, "")
IO.puts(punctuationless_string) # ผลลัพธ์: "Elixir2023Rocks"
# กำจัดช่องว่าง
no_whitespace_string = String.replace(original_string, ~r/\s/, "")
IO.puts(no_whitespace_string) # ผลลัพธ์: "Elixir2023Rocks!"
การศึกษารายละเอียดเพิ่มเติม
การใช้การจับคู่แบบแผนเพื่อลบอักขระในสตริงไม่ได้เป็นเอกลักษณ์ของ Elixir เท่านั้น; นี่เป็นคุณสมบัติทั่วไปในเกือบทุกภาษาโปรแกรมมิ่ง ซึ่งพัฒนามาจากความสามารถในการใช้ regular expression (regex) ในเครื่องมือ Unix ตั้งแต่ต้นเช่น sed
และ grep
ทางเลือกอื่นๆ สำหรับ String.replace/4
อาจเป็นการใช้การจับคู่แบบแผนและการเรียกซ้ำเพื่อเดินทางผ่านและแก้ไขสตริงด้วยตนเอง แต่วิธีนี้โดยทั่วไปมีความซับซ้อนและยาวขึ้น ทำให้ฟังก์ชั่น regex ที่มาพร้อมกับตัวมันเองเป็นที่นิยม ใต้ฝาปิด, String.replace/4
ใช้ประโยชน์จากมรดกของ Erlang ใน Elixir โดยใช้ความสามารถในการจับคู่แบบแผนและการจัดการสตริงที่ทรงพลังของเครื่องจักร BEAM สมมุติฐาน
ดูเพิ่มเติมที่:
- เอกสารของโมดูล
String
ใน Elixir: https://hexdocs.pm/elixir/String.html - Regex ใน Elixir: https://hexdocs.pm/elixir/Regex.html
- ‘เรียนรู้ Regular Expressions’: https://www.regular-expressions.info/tutorial.html
- มุมมองของ Elixir School ต่อสตริงและการจับคู่แบบแผน: https://elixirschool.com/en/lessons/basics/strings/