ใช้ \d+ (d พิมพ์เล็ก + quantifier +) เพื่อจับคู่ ลำดับตัวเลข 1 ตัวขึ้นไป
ตัวอย่าง: search() - หาครั้งแรก
import re m = re.search(r'\d+', '5Need47forSpeed 2') print(m)
ผลลัพธ์
<_sre.SRE_Match object at 0x...>
จับคู่ "5" (digit sequence แรกที่เจอ)
ตัวอย่าง: findall() - หาทั้งหมด
import re m = re.findall(r'\d', '5Need47forSpeed 2') print(m)
ผลลัพธ์
['5', '4', '7', '2']
หมายเหตุ: ตัวอย่างใช้ \d (ไม่มี +) จึงได้ตัวเลขแยกตัว ตรงกับโค้ดต้นฉบับ หากใช้ \d+ จะได้ ['5', '47', '2']
สรุป \d vs \D
| Pattern | ความหมาย | ตัวอย่างจับคู่ |
|---|---|---|
\d | ตัวเลข 1 ตัว | 0-9 |
\d+ | ตัวเลข 1+ ตัว (ติดกัน) | 123, 45, 9 |
\D | ไม่ใช่ตัวเลข 1 ตัว | a, Z, @, space |
\D+ | ไม่ใช่ตัวเลข 1+ ตัว (ติดกัน) | abc, Hello! |