2010-03-20 7 views
1

J'ai une base de données complète des champs de texte qui ressemble à ceci:Rechercher et remplacer dans un bloc de texte

(paragraph of normal text) 

image:blog/clownboy.jpg 

(another paragraph) 

Je suis en train d'écrire une aide de vue pour Rails qui prendra un de ces grands blocs de texte, recherchez des bits comme "image: blog/clownboy.jpg" et remplacez-les par les <img src="blog/clownboy.jpg"> correspondants (sans perturber les espaces environnants) avant de les transmettre à l'utilisateur. J'essaye depuis une heure maintenant, mais je suis nouveau à Ruby et les expressions régulières sont encore un peu au-dessus de moi.

+3

Je suis terrifié par le fait que vous avez quelque chose appelé clownboy.jpg. –

Répondre

3

substitution globale de image: xyz sur une ligne séparée avec <img src='xyz'/>:

text.gsub!(/^image:(.+)$/) { "<img src='#{$1}'/>" } 
+0

Ceci est vraiment proche, mais il ne semble pas gérer correctement les espaces environnants. Si mon champ de texte contient "\ r \ n \ r \ nimage: foobar.jpg \ r \ n \ r \ n" alors cette approche me donne " \ n \ r \ n", ce qui n'est pas un lien approprié. Je joue avec la regex, mais je ne suis pas sûr de savoir quoi utiliser à la place du "(. +) $" –

+0

changez la regex à:/^ image: (\ S +)/ – amitkaz

+0

C'est fait! Merci! –

Questions connexes