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

การแยกตัวเลขทศนิยมจากสตริงใน Python ด้วย Regex

การใช้โมดูล re เป็นวิธีที่เร็วที่สุดสำหรับงานนี้

ตัวอย่าง: แยกจำนวนเต็มและทศนิยมจากข้อความ

>> import re
>>> s = 'my age is 25. I have 55.50 percent marks and 9764135408 is my number'
>>> re.findall(r'\d*\.?\d+', s)

ผลลัพธ์

['25', '55.50', '9764135408']

คำอธิบายรูปแบบ \d*\.?\d+

  • \d* - ตัวเลข 0 ตัวขึ้นไป (ส่วนจำนวนเต็ม)
  • \.? - จุดทศนิยม 0 หรือ 1 ตัว
  • \d+ - ตัวเลข 1 ตัวขึ้นไป (ส่วนทศนิยม)

ข้อควรระวัง: รูปแบบนี้จะจับคู่ตัวเลขที่อยู่ติดกัน เช่นใน "123.456.789" อาจได้ผลลัพธ์ที่ไม่คาดคิด ควรปรับรูปแบบให้เฉพาะเจาะจงตามรูปแบบข้อมูลจริง