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

2024-09-18 02:57:44 发布

您现在位置:Python中文网/ 问答频道 /正文

从不在字母表中的字符串中删除所有字符的最佳方法是什么?我是说,去掉所有空格,函数间,括号,数字,数学运算符。。

例如:

input: 'as32{ vd"s k!+'
output: 'asvdsk'

Tags: 方法函数字符串inputoutput运算符数字数学
3条回答

下面是一个使用ASCII范围检查字符是否在大写/小写字母表中的方法(如果是,则将其追加到字符串中):

s = 'as32{ vd"s k!+'
sfiltered = ''

for char in s:
    if((ord(char) >= 97 and ord(char) <= 122) or (ord(char) >= 65 and ord(char) <= 90)):
        sfiltered += char

变量sfiltered将显示结果,如预期的'asvdsk'

您可以使用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'

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

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

印刷品 'asvdsk'

相关问题 更多 >