2010-10-12 19 views
5

इम कुछ स्क्रीन scraping कर रहे हैं और im वापस एक स्ट्रिंग खाली स्थान के लेकिन न तो string.strip या strip.gsub साथ समाप्त करने के लिए प्रतीत होता है कि हो रही है (/ \ s/यू, '') चरित्र को हटा।रूबी 1.9 पट्टी को हटाने नहीं खाली स्थान के

मुझे लगता है कि यह एक चरित्र एन्कोडिंग समस्या है। कोई सुझाव?

उत्तर

12

मुझे लगता है, वहाँ "अंतरिक्ष अक्षरों" के एक बहुत हैं। आप कुछ इस तरह उपयोग कर सकते हैं: आप इस कोशिश कर सकते हैं

my_string.gsub("\302\240", ' ').strip 
+1

'my_string.tr (" \ 302 \ 240 ", '') .strip' थोड़ा तेजी से होना चाहिए – lulalala

+1

टिप्पण लायक - http://stackoverflow.com/questions/2588942/convert-non-breaking-spaces-to -स्पेस-इन-रूबी - "सभी का उपयोग करने के लिए '/ [[: space:]] /' का उपयोग करें, जिसमें यूनिकोड व्हाइटस्पेस सहित गैर-ब्रेकिंग स्पेस शामिल हैं। यह '/ \ s /' के विपरीत है, जो केवल ASCII व्हाइटस्पेस से मेल खाता है । " – DreadPirateShawn

2

बाहर अंतिम वर्ण (str[-1].ord) और स्पष्ट रूप से खोज और इसे नष्ट के चरित्र कोड चित्रा। इसके बाद अधिक अवांछित वर्ण मौजूद होने पर कुल्ला/दोहराएं। ऐसा करने के बाद, अदृश्य चरित्र क्या था यहां रिपोर्ट करें। (शायद यह क्योंकि फॉन्ट का प्रयोग कर रहे है कि ग्लिफ़ नहीं है केवल अदृश्य है?)

+1

+1 मुझे मछली के बारे में सिखाए जाने के लिए। धन्यवाद। – fyz

4

: my_string.gsub(/\A[[:space:]]+|[[:space:]]+\z/, '')

यह शुरुआत और सभी संभव यूनिकोड अंतरिक्ष बदलाव शामिल स्ट्रिंग के अंत, से सभी अंतरिक्ष वर्ण निकाल देना चाहिए।

संबंधित मुद्दे