2009-08-28 18 views
19

Hey, estoy escribiendo mi primera aplicación Rails, y estoy tratando de reemplazar los guiones forman un nombre Identificación del entrante con espacios, así:simples expresiones regulares - reemplazar subrayado con un espacio

antes : test_string

después: cadena de prueba

¿Cómo puedo hacer esto? Lo siento si esto es un poco de una pregunta tonta, no estoy muy familiarizado con las expresiones regulares ...

Respuesta

7

Vaya, que en realidad tenía que funcione - simplemente se olvidó de actualizar el nombre de la variable: P

que estaba usando esto:

@id = params[:id] 
@title = @id.gsub("_", " ") 
31
str.gsub!(/_/, ' ') 

gsub representa 'sustitución global', y la exclamación significa que va a cambiar la propia cadena en vez que simplemente devolver la cadena sustituida.

También puede hacerlo sin el uso de expresiones regulares String#tr!:

str.tr!('_', ' ') 
+9

'str.tr! ('_', '')' Devolverá nil si 'str' no incluye ningún' _' – draw

22

En los rieles puede usar el método simplier .humanize y el método .downcase de ruby, pero tenga cuidado ya que también elimina cualquier cadena final '_id' (En la mayoría de los casos esto es justo lo que necesita, incluso la primera letra en mayúsculas)

'text_string_id'.humanize.downcase 
=> "text string" 
+1

Alternativamente, ''text_string_id'.humanize (capitalize: false)' le permitirá para omitir la transformación extra de 'fondo'. – jmccartie

0

El uso de dividir y unir los carriles en

"test_string" .split ('_'). Join (' ')

Cuestiones relacionadas