Cả hai đều tìm pattern trong string, nhưng phạm vi tìm kiếm khác nhau.
| Hàm | Vị trí tìm kiếm | Trả về |
|---|---|---|
re.match(pattern, string) | Chỉ đầu chuỗi | Match object hoặc None |
re.search(pattern, string) | Toàn bộ chuỗi (từ trái sang) | Match object hoặc None |
Ví dụ
import re s = 'TP Tutorials Point TP' # match: chỉ đầu chuỗi re.match(r'TP', s).group() # 'TP' ✓ re.match(r'Tutorials', s) # None ✗ # search: quét toàn chuỗi re.search(r'Tutorials', s).group() # 'Tutorials' ✓ re.search(r'TP', s).group() # 'TP' (match đầu tiên)
Khi nào dùng cái nào?
match: validate format (email, phone, date...) — pattern phải khớp từ đầu.search: tìm pattern bất kỳ đâu trong chuỗi.findall: tìm tất cả match (không chỉ cái đầu).