Hướng dẫn python only keep letters in string - python chỉ giữ các chữ cái trong chuỗi

Cách tốt nhất để loại bỏ tất cả các ký tự khỏi một chuỗi không có trong bảng chữ cái là gì? Ý tôi là, loại bỏ tất cả các không gian, sự thay đổi, dấu ngoặc, số, toán tử toán học ..

Ví dụ:

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

Hỏi ngày 11 tháng 12 năm 2015 lúc 0:16Dec 11, 2015 at 0:16

0

Bạn có thể sử dụng

import re
s = 'as32{ vd"s k!+'
print re.sub['[^a-zA-Z]+', '', s]
2, nhưng bạn không thực sự cần.

>>> 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'

Đã trả lời ngày 11 tháng 12 năm 2015 lúc 0:19Dec 11, 2015 at 0:19

Timgebtimgebtimgeb

74.5K20 Huy hiệu vàng114 Huy hiệu bạc139 Huy hiệu đồng20 gold badges114 silver badges139 bronze badges

Nếu bạn muốn sử dụng biểu thức chính quy, điều này sẽ nhanh hơn

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

In

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

Đã trả lời ngày 11 tháng 12 năm 2015 lúc 0:26Dec 11, 2015 at 0:26

Nehemnehemnehem

Huy hiệu vàng 11.5k654 Huy hiệu bạc78 Huy hiệu đồng6 gold badges54 silver badges78 bronze badges

Dưới đây là một phương pháp sử dụng phạm vi ASCII để kiểm tra xem một ký tự ở bảng chữ cái trên/chữ thường [và nối nó vào một chuỗi nếu có]:

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

for char in s:
    if[[ord[char] >= 97 and ord[char] = 65 and ord[char] 

Chủ Đề