消除不需要的字符
回答
使用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. 刪除不需要的字符VBA(excel)
- 4. 消除不需要的字符從每一個字符串數組中迅速
- 5. 正則表達式需要刪除不需要的字符
- 6. 需要匹配sting或從字符串中刪除不需要的字符
- 7. 需要刪除ASCII字符
- 8. 字符串文字和刪除不需要的字符
- 9. 從Python中的字符串中刪除不需要的字符
- 10. 使用MYSQL刪除字符串中的不需要的字符
- 11. 刪除字符串中不需要的字符
- 12. 刪除字符串中不需要的字符
- 13. Html查詢字符串刪除不需要的字符
- 14. 如何刪除字符串中不需要的字符
- 15. 如何從字符串中刪除不需要的字符
- 16. 從字符串中去除不需要的字符
- 17. 消除不需要的關鍵點
- 18. 消除MySQL的結果不需要行
- 19. 需要消除無效字符,並檢查長度
- 20. 動態消除,需要
- 21. 從字符串中刪除不需要的字
- 22. jQuery maskedinput字符不需要
- 23. 不需要轉義字符
- 24. 顯示不需要的字符串長度消息
- 25. 刪除不需要的字符的函數 - SQL Server
- 26. 消除對字符串變量不必要的XSL測試
- 27. 字符串:提取想要的,而不是刪除不需要的
- 28. 在記事本中刪除不需要的字符串++
- 29. 從json響應中刪除不需要的字符
- 30. 解析URL字符串以刪除不需要的東西(C++)
你能否更具體一點,你想擺脫每一個非英文字符?只是忽略他們?另外爲什麼不讓他們? – jamylak 2013-04-25 10:08:44
也許你需要修復你的程序來正確處理unicode輸入呢?不要只刪除非ASCII字符,正確處理它們! – 2013-04-25 10:08:48
@jamylak - 是的,我想擺脫所有不是英語 – user1946217 2013-04-25 10:09:52