Nếu bạn thực sự có một mảng (như bạn nêu) và đó là một chuỗi các chuỗi (tôi đoán), ví dụ:
foo = [ "hello", "42 cats!", "yöwza" ]
thì tôi có thể tưởng tượng bạn muốn cập nhật từng chuỗi trong mảng với giá trị mới hoặc bạn muốn một mảng đã sửa đổi chỉ chứa các chuỗi nhất định.
Nếu trước đây (bạn muốn để 'làm sạch' mỗi chuỗi mảng) bạn có thể làm một trong các cách sau:
foo.each{ |s| s.gsub! /\p{^Alnum}/, '' } # Change every string in place…
bar = foo.map{ |s| s.gsub /\p{^Alnum}/, '' } # …or make an array of new strings
#=> [ "hello", "42cats", "yöwza" ]
Nếu sau này (bạn muốn chọn một tập hợp con của chuỗi trong đó mỗi trận đấu tiêu chí của bạn giữ chữ cái và số), bạn có thể sử dụng một trong các:
# Select only those strings that contain ONLY alphanumerics
bar = foo.select{ |s| s =~ /\A\p{Alnum}+\z/ }
#=> [ "hello", "yöwza" ]
# Shorthand method for the same thing
bar = foo.grep /\A\p{Alnum}+\z/
#=> [ "hello", "yöwza" ]
trong Ruby, biểu thức thông thường có dạng /\A………\z/
đòi hỏi toàn bộ chuỗi để phù hợp, như \A
neo biểu thức chính quy để bắt đầu của chuỗi một nd \z
neo đến cùng.
http://stackoverflow.com/questions/737475/how-i-can-delete-special-characters điều này sẽ trả lời 50% câu hỏi của bạn – Devjosh
Thông thường chúng ta nói về một Chuỗi có các ký tự và một mảng có dữ liệu khác nhau, ví dụ đối tượng, số hoặc chuỗi. Bạn có thực sự có một mảng (có lẽ là một mảng dây?) Hoặc chỉ là một String? – Phrogz
-1. Không quá nhiều vì không cố gắng giải quyết nó, nhưng bởi vì câu hỏi là vô nghĩa vì lý do được đưa ra bởi Phrogz. –