Ruby:
การลบตัวอักษรที่ตรงกับรูปแบบ
วิธีการ:
# การลบแบบง่ายๆ โดยใช้ String#gsub
example = "Hello, #World!"
cleaned_example = example.gsub(/#/, '') # => "Hello, World!"
puts cleaned_example # ผลลัพธ์: Hello, World!
# การลบลำดับของอักขระ
sequence_example = "Th1s is 2 an example3."
cleaned_sequence = sequence_example.gsub(/[0-9]/, '') # => "This is an example."
puts cleaned_sequence # ผลลัพธ์: This is an example.
# การลบโดยใช้ String#delete
delete_example = "Remove vowels from this line."
cleaned_delete = delete_example.delete('aeiou') # => "Rmv vwls frm ths ln."
puts cleaned_delete # ผลลัพธ์: Rmv vwls frm ths ln.ลงลึก
ตามประวัติศาสตร์, Ruby เป็นภาษาที่มีจุดเน้นที่การประมวลผลข้อความอย่างแข็งแรง, โดยได้รับแนวคิดบางอย่างจาก Perl นั่นเป็นเหตุผลที่มันให้เครื่องมืออย่าง gsub และ delete ให้คุณใช้งานได้ทันที
gsub ย่อมาจาก global substitution มักใช้สำหรับการแทนที่ส่วนของสตริงที่ตรงกับรูปแบบ (regular expression) ด้วยสตริงอื่น ๆ เมื่อได้รับสตริงที่เป็นการแทนที่ว่างเปล่า, มันจะลบอักขระที่ตรงกับเงื่อนไขออกได้อย่างมีประสิทธิภาพ
delete มีความยืดหยุ่นน้อยกว่า gsub แต่เร็วกว่าเมื่อคุณต้องการลบอักขระเฉพาะออกเท่านั้น คุณไม่สามารถใช้ regular expressions กับ delete ได้, แต่สำหรับการลบอักขระง่ายๆ มันเป็นตัวเลือกที่ชัดเจน
ยังมีวิธีอื่นๆ ในการทำงานนี้ได้ ไลบรารีอย่าง scan และ split สามารถแยกสตริงออกมา และคุณสามารถประกอบพวกมันกลับขึ้นมาโดยไม่รวมอักขระที่ไม่ต้องการได้ แต่สำหรับการลบอักขระโดยตรง, gsub และ delete คือตัวเลือกที่ดีที่สุด
ดูเพิ่มเติม
- เอกสารของ Ruby สำหรับ
gsub: Ruby Doc gsub - เอกสารของ Ruby สำหรับ
delete: Ruby Doc delete - การใช้ Regular Expressions ใน Ruby: Ruby Regexp
- “Programming Ruby: The Pragmatic Programmer’s Guide” สำหรับการศึกษาความสามารถในการประมวลผลข้อความของ Ruby อย่างลึกซึ้ง