即替换所有数字,特殊字符,非打印字符。我无法使用re
库。
line = line.rstrip() # this get rids of the white spaces
if character in string.digits or character in string.punctuation:
line = line.replace(character, "")
但是,这并没有摆脱\
;我怎样才能检查并更换它? character in "\"
不起作用。
答案 0 :(得分:3)
只需遍历字符串并保留任何字母字符。您可以使用列表推导和连接来完成此操作。
import string
line = ''.join(c for c in line if c in string.ascii_letters)
虽然您可以使用isalpha()
更好地处理unicode字符串:
>>> line = u'ABcdef124__++--()zyxôôô999٤end'
>>> print(''.join(c for c in line if c.isalpha()))
ABcdefzyxôôôend
所以保留了ô
(带有CIRCUMFLEX的拉丁语小写字母O),但٤
(阿拉伯语 - 指示数字四)不是,这似乎是正确的。
答案 1 :(得分:1)
你应该保护“\”。使用“\\”
答案 2 :(得分:1)
只需使用str.isalpha()
检查字符是否为字母:
>>> st='hsfjebhjbe283628362et#@%\\\\\\\\\\\\\\!!@$*)(|<>~\%^%@%^///;...][]=--]9988bjwqgvs'
>>> ''.join(i for i in st if i.isalpha())
'hsfjebhjbeetbjwqgvs'
使用字母数字str.isalnum()
:
>>> ''.join(i for i in st if i.isalnum())
'hsfjebhjbe283628362et9988bjwqgvs'