Xóa các ký tự phù hợp với một mẫu

Ruby:
Xóa các ký tự phù hợp với một mẫu

Cách thực hiện:

# Xoá đơn giản sử dụng String#gsub
example = "Hello, #World!"
cleaned_example = example.gsub(/#/, '') # => "Hello, World!"

puts cleaned_example # Đầu ra: Hello, World!

# Xoá một dãy ký tự
sequence_example = "Th1s is 2 an example3."
cleaned_sequence = sequence_example.gsub(/[0-9]/, '') # => "This is an example."

puts cleaned_sequence # Đầu ra: This is an example.

# Xoá bằng cách sử dụng String#delete
delete_example = "Remove vowels from this line."
cleaned_delete = delete_example.delete('aeiou') # => "Rmv vwls frm ths ln."

puts cleaned_delete # Đầu ra: Rmv vwls frm ths ln.

Sâu hơn

Trong lịch sử, Ruby đã là một ngôn ngữ tập trung mạnh mẽ vào xử lý văn bản, kế thừa một số triết lý từ Perl. Đó là lý do tại sao nó cung cấp cho bạn các công cụ như gsubdelete ngay từ đầu.

gsub là viết tắt của global substitution (thay thế toàn cục). Nó thường được sử dụng để thay thế các phần của chuỗi phù hợp với một mẫu (biểu thức chính quy) bằng một chuỗi khác. Khi được cung cấp một chuỗi thay thế trống, nó hiệu quả xoá các ký tự phù hợp.

delete ít linh hoạt hơn gsub nhưng nhanh hơn khi bạn chỉ muốn loại bỏ các ký tự cụ thể. Bạn không thể sử dụng biểu thức chính quy với delete, nhưng cho việc loại bỏ ký tự đơn giản, đây là lựa chọn rõ ràng.

Có những cách khác để thực hiện việc này, thư viện như scansplit có thể phân tích chuỗi, và sau đó bạn có thể tái tạo chúng mà không cần những ký tự không mong muốn. Nhưng cho việc xoá ký tự trực tiếp, gsubdelete là các bạn tốt nhất của bạn.

Xem Thêm

  • Tài liệu gsub của Ruby: Ruby Doc gsub
  • Tài liệu delete của Ruby: Ruby Doc delete
  • Biểu thức chính quy trong Ruby: Ruby Regexp
  • “Programming Ruby: The Pragmatic Programmer’s Guide” để hiểu sâu hơn về khả năng xử lý văn bản của Ruby.