2010-10-12 155 views
5

我做了一些屏幕抓取和即時獲取一個字符串,似乎以空白結束,但string.strip或strip.gsub(/ \ s/u,'')都刪除字符。紅寶石1.9帶不去除空白

我猜這是一個字符編碼問題。有什麼建議麼?

回答

12

我想,有很多「空格字符」。 您可以使用這樣的事情:

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

'my_string.tr(「\ 302 \ 240」,'').strip'應該快一點 – lulalala 2014-07-11 06:50:53

+1

值得注意 - http://stackoverflow.com/questions/2588942/convert-non-breaking-spaces-to -spaces-in-ruby - 「使用'/ [[:space:]] /'來匹配所有的空格,包括Unicode空格,例如非空格。這與'/ \ s /'不同,它只匹配ASCII空格「。 – DreadPirateShawn 2014-08-10 05:45:43

2

找出最後一個字符(str[-1].ord)的字符代碼並明確搜索並銷燬它。如果之後存在更多不需要的字符,請沖洗/重複。做完這些之後,回到這裏看看這個無形的角色是什麼。 (也許它只是因爲你使用的字體沒有那個字形而看不見?)

+1

+1教我如何釣魚。謝謝。 – fyz 2014-05-08 22:11:28

4

你可以試試這個:my_string.gsub(/\A[[:space:]]+|[[:space:]]+\z/, '')

這應該從一開始就和字符串的結尾,包括所有可能的unicode的空間變化刪除所有空格字符。