2010-06-23 5 views
1

Ainsi, seul je reçois ce dont j'ai besoin. Mais je veux le tronquer, mon texte dynamique sort avec du texte sale surchargé avec des ordures Microsoft Word.RubyRails: Mélangez Sanitize et Truncate peut être une chose sale

Exemple:

≪! [If Gte Mso 9]>≪Xml> ≪Br /> ≪O:Office Document Settings> ≪Br /> ≪O:Allow Png/> ≪Br /> ≪/O:Off... 

Alors, comment puis-je obtenir le meilleur des deux mondes? Y a-t-il un moyen de faire un raccourci pour faire ça? Par exemple une instruction gsub qui couperait tout après le 125ème char?

Répondre

1

si vous voulez juste couper, vous pouvez

>> long_ugly_string = "omg this is a long string" 
=> "omg this is a long string" 
>> long_ugly_string[10..-1] 
=> "s a long string" 

Référence: http://ruby-doc.org/core/classes/String.html#M000771

donc, vous êtes juste le caractère spécifiant de départ (10) et le caractère de fin (-1 dit pour aller à la fin de la chaîne).

+0

Je m'excuse d'être daft ... mais comment écririez-vous cela? Je ne suis pas familier avec regexp. J'ai essayé str.slice (125 ..- 1) sans effet – Trip

+0

Hmm je trouve que la chaîne [0..125] fonctionne, mais c'est étrange dans ce cas, cet espace est vide car son MicrosoftWord. Donc maintenant je cherche une regexp qui ferait regexp = point de départ OU premier char et le mettrait en str [start..0]. – Trip

+0

Il y a aussi celui-ci: long_ugly_string.gsub (/ ^. {10} /, '') –