消除不需要的字符
回答
使用ord()
检查字符串中每个字符的ASCII值,如果它位于32和126之间(包括两者),那么它是一个有效的字符,否则忽略。
In [23]: strs="“It"
In [24]: "".join(x for x in strs if 31<ord(x)<127)
Out[24]: 'It'
,或者如果你只是想,按字母顺序:
In [27]: import string
In [28]: "".join(x for x in strs if x in string.ascii_letters)
Out[28]: 'It'
筛选出整个字,使用all()
与我们在第一种情况下使用的条件:
In [35]: strs="“It foo bar€"
In [36]: [word for word in strs.split() if all(31<ord(c)<127 for c in word) ]
Out[36]: ['foo']
谢谢ashwini,如果我要删除包含eng以外其他字符的整个单词..如何检查这个? – user1946217 2013-04-25 10:14:22
这是一个糟糕的主意,不要只是过滤掉Unicode字符,学会正确处理它们,即使您的输入将完全处于英文,最终有人会在软件的输入字段或数据文件中输入“curly quotes”(或短划线),而且还需要处理Unicode。不要过滤它,学会处理它。 – rmunn 2013-04-25 10:20:07
@ user1946217我已添加该部分。 – 2013-04-25 10:24:31
这看起来像UTF -8被误解为不同的编码。请尝试:
fixed_input_string = input_string.decode('utf-8')
并查看是否可以解决您的问题。
顺便说一句,如果你不知道我刚才说什么,请现在阅读http://www.joelonsoftware.com/articles/Unicode.html。如果您尝试编写只接受“英文”文本的软件(这实际上意味着ASCII,因为在标准英文文本中有很多字符不是ASCII),您的软件将会在各种“有趣的“ 方法。 Unicode不会消失,而且你必须在某个时候学习 - 所以现在是开始的好时机。
- 1. 需要消除字符串中的最后4个字符(varchar)
- 2. 如何删除不需要的字符
- 3. 消除不需要的字符从每一个字符串数组中迅速
- 4. 需要匹配sting或从字符串中删除不需要的字符
- 5. 需要删除ASCII字符
- 6. 字符串文字和删除不需要的字符
- 7. 从Python中的字符串中删除不需要的字符
- 8. 如何删除字符串中不需要的字符
- 9. Html查询字符串删除不需要的字符
- 10. 消除MySQL的结果不需要行
- 11. 从字符串中删除不需要的字
- 12. 动态消除,需要
- 13. 不需要转义字符
- 14. jQuery maskedinput字符不需要
- 15. 删除不需要的字符的函数 - SQL Server
- 16. 字符串:提取想要的,而不是删除不需要的
- 17. 在记事本中删除不需要的字符串++
- 18. 从json响应中删除不需要的字符
- 19. 如何使用preg_replace在php中删除不需要的字符?
- 20. 如何在swift中删除不需要的searchbar.text字符?
- 21. 如何去除Android中不需要的字符?
- 22. 删除不需要的字符从SQL retreival
- 23. preg_match从字符串中删除不需要的文本
- 24. 如何检测并删除字符串中不需要的行?
- 25. 如何删除字符串中不需要的括号?
- 26. 从URL中删除不需要的字符
- 27. 如何优化代码去除不需要的字符
- 28. 使用php删除这些不需要的字符
- 29. 删除不需要的字符FOM CGI输出
- 30. 使用JQuery从文本框中删除不需要的字符
你能否更具体一点,你想摆脱每一个非英文字符?只是忽略他们?另外为什么不让他们? – jamylak 2013-04-25 10:08:44
也许你需要修复你的程序来正确处理unicode输入呢?不要只删除非ASCII字符,正确处理它们! – 2013-04-25 10:08:48
@jamylak - 是的,我想摆脱所有不是英语 – user1946217 2013-04-25 10:09:52