有时我有一个奇怪的字符串。它们在浏览器中不可见,但是是字符串的一部分,并以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. 如何从字符串中删除标点符号? (Python)
- 5. 如何从字符串的末尾删除标志?
- 6. 隐藏/删除随机字符串?
- 7. 隐藏/删除字符串使用jQuery
- 8. Python:从字符串中删除字符
- 9. 如何从python中的字符串中删除中间字符?
- 10. Python如何从列表中的字符串中删除字符
- 11. 删除字符串中的隐藏字符
- 12. 如何从字符串中删除标有特殊字符的子字符串?
- 13. 我如何从Python中的列表中删除字典标志?
- 14. Python:如何从文本字符串中删除HTML标头?
- 15. 从隐藏框中删除部分字符串 - javascript
- 16. Python从字符串中删除字母
- 17. 从字符串中删除数字-Python
- 18. 如何从python中的字符串中删除小写字词
- 19. 如何从字符串[python]中删除一个字符?
- 20. Python中的哈希(隐藏)字符串
- 21. 如何删除python中的字符串中的中间字符
- 22. Python:从字符串中删除\ xa0?
- 23. 从Python字符串中删除
- 24. 从python字符串中删除emojis
- 25. 从字符串中删除撇号python
- 26. 如何从python中的格式化字符串中删除子字符串?
- 27. 如何从tcl中的字符串中删除子字符串
- 28. 如何从javascript中的字符串中删除子字符串?
- 29. 如何从字符串中删除动态字符字符串?
- 30. 如何使用PHP从字符串中删除子字符串?
看到这个解决方案:http://stackoverflow.com/questions/92438/stripping-non-printable-characters-from-a-string-in-python –