Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách dùng regex Python để khớp chuỗi ngày tháng?


Trong ví dụ dưới, chuỗi ngày đầu tiên khớp định dạng dd-mm-yyyy, chuỗi thứ hai (yyyy-mm-dd) không khớp.

Ví dụ

import re
datestring = '21-09-1991'
foo = re.match(r'(\d{2})[/.-](\d{2})[/.-](\d{4})$', datestring)
print(foo.group())

datestring = '1991-09-21'
foo = re.match(r'(\d{2})[/.-](\d{2})[/.-](\d{4})$', datestring)
print(foo)

Kết quả

21-09-1991
None

Giải thích pattern: (\d{2}) bắt 2 chữ số (ngày/tháng), [/.-] cho phép phân cách bằng /, . hoặc -, (\d{4}) bắt 4 chữ số năm. Dấu $ đảm bảo khớp đến cuối chuỗi.

Lưu ý: Regex chỉ kiểm tra định dạng, không kiểm tra tính hợp lệ của ngày (ví dụ 31-02-2020 vẫn khớp). Nên dùng datetime.strptime() để parse và validate cùng lúc.