python中去掉字串中的 xa0 t n

2021-08-22 15:20:13 字數 1687 閱讀 8917

今天在做爬蟲時,發現提取出的資訊中有「\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...