Se si dispone veramente di un array (come si afferma) ed è un array di stringhe (suppongo), ad es.
foo = [ "hello", "42 cats!", "yöwza" ]
quindi posso immaginare che si sia da aggiornare ogni stringa nella matrice con un nuovo valore, o che si desidera una matrice modificato che contiene solo determinate stringhe.
Nel primo caso (che si desidera 'pulito' ogni corda l'array) si potrebbe fare uno dei seguenti modi:
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" ]
In quest'ultimo caso (che si desidera selezionare un sottoinsieme delle stringhe dove ogni partite i tuoi criteri di tenuta solo caratteri alfanumerici) è possibile utilizzare uno di questi:
# 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" ]
In Ruby, le espressioni regolari della forma /\A………\z/
richiedono l'intera stringa in modo che corrisponda, come \A
ancore l'espressione regolare per l'inizio della stringa un nd \z
ancore fino alla fine.
http://stackoverflow.com/questions/737475/how-i-can-delete-special-characters risponderà al 50% della tua domanda – Devjosh
Di solito parliamo di una stringa con caratteri e una matrice con dati diversi, per esempio oggetti, numeri o stringhe. Hai davvero una matrice (forse una serie di stringhe?) O solo una stringa? – Phrogz
-1. Non tanto per non cercare di risolverlo, ma perché la domanda è priva di senso per la ragione data da Phrogz. –