Python:只保留字符串中的字母

10 python python-2.7

从字符串中删除不在字母表中的所有字符的最佳方法是什么?我的意思是,删除所有空格,interpunction,括号,数字,数学运算符..

例如:

input: 'as32{ vd"s k!+'
output: 'asvdsk'
Run Code Online (Sandbox Code Playgroud)

tim*_*geb 29

你可以使用re,但你真的不需要.

>>> s = 'as32{ vd"s k!+'
>>> ''.join(x for x in s if x.isalpha())
'asvdsk'    
>>> filter(str.isalpha, s) # works in python-2.7
'asvdsk'
>>> ''.join(filter(str.isalpha, s)) # works in python3
'asvdsk'
Run Code Online (Sandbox Code Playgroud)


neh*_*iah 8

如果你想使用正则表达式,这应该更快

import re
s = 'as32{ vd"s k!+'
print re.sub('[^a-zA-Z]+', '', s)
Run Code Online (Sandbox Code Playgroud)

版画 'asvdsk'