คุณสามารถใช้ฟังก์ชั่น isdigit () กับตัวละครทุกตัวใน String หรือคุณสามารถใช้การแสดงออกปกติ
นอกจากนี้ฉันพบฉันจะค้นหาหมายเลขหนึ่งในสตริงใน Python ได้อย่างไร ด้วยวิธีที่เหมาะสมมากในการส่งคืนตัวเลข การแก้ปัญหาด้านล่างมาจากคำตอบในคำถามนั้น
number = re.search(r'\d+', yourString).group()
อีกวิธีหนึ่งคือ:
number = filter(str.isdigit, yourString)
สำหรับข้อมูลเพิ่มเติมดูที่ regex docu: http://docs.python.org/2/library/re.html
แก้ไข: ส่งคืนตัวเลขจริงไม่ใช่ค่าบูลีนดังนั้นคำตอบข้างต้นจะถูกต้องมากขึ้นสำหรับกรณีของคุณ
วิธีแรกจะส่งกลับตัวเลขแรกและตัวเลขที่ต่อเนื่องกัน ดังนั้น 1.56 จะถูกส่งคืนเป็น 1. 10,000 จะถูกส่งคืนเป็น 10 0207-100-1000 จะถูกส่งกลับเป็น 0207
วิธีที่สองไม่ทำงาน
หากต้องการแยกตัวเลขจุดและเครื่องหมายจุลภาคทั้งหมดและไม่สูญเสียตัวเลขที่ไม่ต่อเนื่องกันให้ใช้:
re.sub('[^\d.,]' , '', yourString)