有時我有一個奇怪的字符串。它們在瀏覽器中不可見,但是是字符串的一部分,並以len()計算。 我該如何擺脫它? Strip()刪除正常空間,但不是那個標誌。Python - 如何從字符串中刪除隱藏的標誌?
回答
使用來自string
模塊的字符類別。此外
new_string = re.sub("[^{}]+".format(printable), "", the_string)
,如果你想看到所有的字符:如果你想允許所有可打印字符,你可以在你的答案做
from string import printable
new_string = ''.join(char for char in the_string if char in printable)
大廈,您可以用re.sub
就此別過一個字符串,即使是那些不可打印,你總是可以做
print repr(the_string)
,它會顯示之類的東西\x00
爲不可打印的字符。
當然這是正確的答案。 – dotancohen
秒鐘的答案像魅力一樣工作,謝謝。 – Yehonatan
對於各種字符串分析,正則表達式是一種很好且非常通用的工具。如果速度有問題,字符串類中的「translate」方法也可以幫助你。
首先定義一個(「身份」)的映射,它不會改變任何東西:如果你想替換每個「一」由「B」,您修改映射
mapping = map(chr, range(256))
mapping[ord('a')] = 'b'
現在你建表的 「翻譯」 方法:
table = "".join(mapping)
和
print "abc".translate(table)
打印「bbc」。
如果你真的要刪除的「一」,你不修改上述映射,建立表,然後調用 翻譯如下:
print "abc".translate(table, "a")
爲您提供了「BC」。
建表之後,翻譯方法非常快。
所以你的情況,你可以修改映射,使得所有多餘的字符映射到一個空白
mapping = map(chr, range(256))
table = "".join(" " if c in unwanted_chars else c for c in map(chr, range(256)))
,並使用len("my string".translate(table).trim())
而忽略在一開始不想要的字符 和字符串的結尾。
或者您使用len("my string".translate(table, unwanted_chars))
這將忽略所有不需要的字符。
不錯。當我再次投票時明天+1。我想過翻譯,但懶得查找語法。 – agf
- 1. 如何從python中的字符串中刪除子字符串?
- 2. 如何從Python中的字符串中刪除字符串?
- 3. 如何從字符串中刪除標點符號? (Python)
- 4. 隱藏/刪除字符串使用jQuery
- 5. Python:從字符串中刪除字符
- 6. 如何從python中的字符串中刪除中間字符?
- 7. Python如何從列表中的字符串中刪除字符
- 8. 刪除字符串中的隱藏字符
- 9. 我如何從Python中的列表中刪除字典標誌?
- 10. 從隱藏框中刪除部分字符串 - javascript
- 11. Python從字符串中刪除字母
- 12. 如何從python中的字符串中刪除小寫字詞
- 13. 如何從字符串[python]中刪除一個字符?
- 14. 從字符串中刪除撇號python
- 15. 從Python字符串中刪除
- 16. 從python字符串中刪除emojis
- 17. 如何從tcl中的字符串中刪除子字符串
- 18. 從字符串中刪除html標記
- 19. 從字符串中刪除html標記
- 20. 如何從python中的字符串中刪除\ x1b
- 21. 如何從Python中的字符串中刪除空行?
- 22. 如何使用Python從字符串中刪除符號?
- 23. 從字符串中刪除字符串
- 24. 從字符串中刪除字符串
- 25. 如何從字符串中刪除'<'?
- 26. 如何從字符串中刪除\」
- 27. 如何從字符串中刪除'quote?
- 28. 如何從混合字符串刪除單個字符在Python
- 29. 從Python中的字符串中刪除不需要的字符
- 30. 從Python中的字符串中刪除奇怪的字符
看到這個解決方案:http://stackoverflow.com/questions/92438/stripping-non-printable-characters-from-a-string-in-python –