今天在做爬蟲時,發現提取出的資訊中有「\xa0」,並且無法去掉,查閱了相關資料,後發現該字元表示空格。
\xa0 是不間斷空白符
我們通常所用的空格是 \x20 ,是在標準ascii可見字元 0x20~0x7e 範圍內。
而 \xa0 屬於 latin1 (iso/iec_8859-1)中的擴充套件字符集字元,代表空白符nbsp(non-breaking space)。
latin1 字符集向下相容 ascii ( 0x20~0x7e )。通常我們見到的字元多數是 latin1 的,比如在 mysql 資料庫中。
有如下資訊:
't-shirt\xa
0\xa
0短袖圓領衫,體恤衫\xa
0,', 'v-neck\xa
0\xa
0v型領\xa
0sleeve\xa
0\xa
0袖子\xa
0,',
>>>
inputstring = u'\n door:\xa0novum \t '
>>>
move = dict.fromkeys((ord(c) for
c in
u"\xa0\n\t"
))>>>
output = inputstring.translate(move)
>>>
output
' door:novum '
另外還有一種更簡單的方法,利用split方法:
>>> s
't-shirt\xa0\xa0短袖圓領衫,體恤衫\xa0'
>>> out
= ""
.join
(s.split())
>>> out
't-shirt短袖圓領衫,體恤衫'
可以發現利用translate方法、split()可以完美解決,並且還可以替換\t \n字元,由此又學到了新知識!
關於ord函式:
ord()函式是chr()函式(對於8位的ascii字串)或unichr()函式(對於unicode物件)的配對函式,它以乙個字元(長度為1的字串)作為引數,返回對應的ascii數值,或者unicode數值,如果所給的unicode字元超出了你的python定義範圍,則會引發乙個typeerror的異常。
關於fromkeys方法:
dict中的fromkeys方法目的是建立乙個只有key的字典,內部利用for迴圈,使三個字元的asii碼值成為可迭代物件(本來的整數是不可迭代的),分別對其迭代,存入字典。
關於translate方法:
python translate() 方法根據引數table給出的表(包含 256 個字元)轉換字串的字元, 要過濾掉的字元放到 del 引數中。接收到move返回的表(字典),之後對字串進行替換。
join()方法:
join(): 連線字串陣列。將字串、元組、列表中的元素以指定的字元(分隔符)連線生成乙個新的字串。可見該處用join方法真的是神來之筆,可謂絕妙!
值得注意的是,split方法中不帶引數時,表示分割所有換行符、製表符、空格。
python中去掉字串中的空格
我們想去除字串中不必要的空格時可以使用如下方法 在這裡以str作為例子來演示。在str中前中後三處都有空格。函式原型 宣告 str為字串,rm為要刪除的字串行 str.strip rm 刪除s字串中開頭 結尾處,位於 rm刪除序列的字元 str.lstrip rm 刪除s字串中開頭 左邊 處,位於 ...
js中去掉字串中的某個指定字元
1.使用replace函式替換 var str hello world str str.replace l 即 使用空串替換某乙個字串,則是可以實現去除指定字串功能 2.使用字串分割函式在聚合 var str hello world var items str.split o 會得到乙個陣列,陣列中...
iOS 字串NSString中去掉空格
問題描述 某些情況下,伺服器返回的字段中含有空格,這空格是伺服器開發人員不小心往資料中多敲了,但客戶端需要保護,所以在客戶端需要把字串中的空格過濾掉。問題分析 1 使用nsstring中的stringbytrimmingcharactersinset nscharacterset whitespac...