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]