Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะลบอักขระยกเว้นตัวเลขออกจากสตริงใน Python ได้อย่างไร


เรามีหลายวิธีในการบรรลุเป้าหมายนี้ เราสามารถกรองอักขระที่ไม่ใช่ตัวเลขโดยใช้คำสั่ง ... if ตัวอย่างเช่น:

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

เรายังสามารถใช้ตัวกรองและฟังก์ชันแลมบ์ดาเพื่อกรองอักขระออก ตัวอย่างเช่น:

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

แม้ว่าจะเกินความสามารถสำหรับงานง่าย ๆ เช่นนี้ แต่เราสามารถใช้ regex เพื่อให้บรรลุสิ่งเดียวกันได้ อักขระ \D (ไม่ใช่ตัวเลข) สามารถแทนที่ด้วยสตริงว่างได้ ตัวอย่างเช่น:

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