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

การจับคู่เฉพาะ Digits ใน Python Regex (\d+)

ใช้ \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!