2012-04-09 24 views

Respuesta

30

Puede simplemente agregar \s (espacios en blanco)

string.downcase.gsub(/[^a-z0-9\s]/i, '')

+0

¡Rock! Elegante y simple. Gracias :) –

+0

Nota: esto eliminará los números. – DrewB

+1

Esto convierte 'basketball-player' en' basketballplayer' –

1

a.downcase.gsub(/[^a-z ]/, "")

Nota el espacio en blanco He añadido después a-z. También, si desea reemplazar todos los espacios en blanco (no solo use espacio como lo propone gmalette).

+6

'a.downcase.delete ('^ a-z')' es una alternativa. – steenslag

+0

Gracias a Ivaylo y @steenslag, me gustó esto y me ayudó a conservar los espacios. – Joe

8

Algunas soluciones finas, pero más simple es generalmente el mejor:

string.downcase.gsub /\W+/, ' ' 
11

Si se desea capturar caracteres no latinos, también:

str = "The basketball-player is great! (Kobe Bryant) (ひらがな)" 
str.downcase.gsub(/[^[:word:]\s]/, '') 
#=> "the basketballplayer is great kobe bryant ひらがな" 
4

Todas las otras respuestas tira de los números también. Eso funciona para el ejemplo dado, pero realmente no responde a la pregunta que es cómo quitar no alfanumérico.

string.downcase.gsub(/[^\w\s\d]/, '') 
Cuestiones relacionadas