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 อย่างลึกซึ้ง