simple regex-remplacer underscore par un espace

Hey, j'écris ma première application sur Rails, et j'essaye de remplacer les underscores d'un nom d'id entrant par des espaces, comme ceci:

avant: test_string

après: chaîne de test

Comment puis-je faire cela? Désolé si c'est une question un peu stupide, je ne suis pas très familier avec les expressions régulières...

21
demandé sur mportiz08 2009-08-29 03:43:29

4 réponses

str.gsub!(/_/, ' ')

gsub signifie 'Global substitution', et l'exclamation signifie qu'il va changer la chaîne elle-même plutôt que de simplement retourner la chaîne substituée.

vous pouvez aussi le faire sans regexes en utilisant String#tr!:

str.tr!('_', ' ')
32
répondu Jeremy Ruten 2009-08-28 23:47:01

Sur les rails, vous pouvez utiliser le plus simple .humanize et ruby est .downcase méthode mais attention car elle supprime aussi toute chaîne finale '_id' (dans la plupart des cas c'est exactement ce dont vous avez besoin, même la première lettre en majuscules)

'text_string_id'.humanize.downcase
 => "text string" 
24
répondu Andión 2014-05-11 20:41:54

Oups, j'ai effectivement eu de travail-juste oublié de mettre à jour le nom de la variable :P

j'ai été en utilisant ceci:

@id = params[:id]
@title = @id.gsub("_", " ")
8
répondu mportiz08 2009-08-28 23:48:41

utilisation de split et join in rails

"test_string".Split.)'_'(join (' ')

0
répondu Suganya 2017-01-18 06:23:48