Si realmente tiene una matriz (como lo indica) y es una matriz de cadenas (supongo), p.
foo = [ "hello", "42 cats!", "yöwza" ]
entonces se puede imaginar que o quiere actualizar cada cadena de la matriz con un nuevo valor, o que desea una matriz modificada que sólo contiene ciertas cadenas.
En el primer caso (que quiere 'limpiar' cada cadena de la matriz) que podría hacer uno de los siguientes:
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" ]
Si esta última (que desea seleccionar un subconjunto de las cuerdas que cada coincidencias los criterios de la celebración de ser alfanuméricos) se puede utilizar uno de estos:
# 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" ]
En Rubí, las expresiones regulares de la forma /\A………\z/
requieren toda la cadena para que coincida, como \A
anclajes de la expresión regular para el inicio de la cadena de una nd \z
anclajes hasta el final.
http://stackoverflow.com/questions/737475/how-i-can-delete-special-characters Esto responderá al 50% de su pregunta – Devjosh
Normalmente hablamos de una Cadena que tiene caracteres y una Matriz que tiene datos diferentes, p.ej objetos, números o cadenas. ¿De verdad tienes un Array (quizás un conjunto de cuerdas?) O solo un String? – Phrogz
-1. No tanto por no tratar de resolverlo, sino porque la pregunta no tiene sentido por la razón dada por Phrogz. –