Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để xóa các ký tự ngoại trừ các chữ số khỏi chuỗi trong Python?

Chúng tôi có nhiều cách khác nhau để đạt được điều này. Chúng ta có thể lọc ra các ký tự không phải chữ số bằng cách sử dụng câu lệnh for ... if. Ví dụ:

>>> s = "H3ll0 P30P13"
>>> ''.join(i for i in s if i.isdigit())
'303013'

Chúng ta cũng có thể sử dụng bộ lọc và hàm lambda để lọc ra các ký tự. Ví dụ:

>>> s = "H3ll0 P30P13"
>>> filter(lambda x: x.isdigit(), s)
'303013'

Mặc dù quá mức cần thiết cho một nhiệm vụ đơn giản như vậy, chúng ta cũng có thể sử dụng regex để đạt được điều tương tự. Ký tự \ D (không phải chữ số) có thể được thay thế bằng một chuỗi trống. Ví dụ:

>>> import re
>>> s = "H3ll0 P30P13"
>>> re.sub("\D", "", s)
'303013'