Cụm từ thông dụng nào trong Python để tôi sử dụng để khớp với các ngày như sau: "11/12/98"?Ngày kết hợp regex Python
24
A
Trả lời
33
Bạn có thể tìm kiếm các chữ số cách nhau bởi phía trước-slashes:
In [146]: import re
In [152]: match=re.search(r'(\d+/\d+/\d+)','The date is 11/12/98')
In [153]: match.group(1)
Out[153]: '11/12/98'
Tất nhiên, ngày tháng không hợp lệ cũng sẽ phù hợp:
In [154]: match=re.search(r'(\d+/\d+/\d+)','The date is 99/99/99')
In [155]: match.group(1)
Out[155]: '99/99/99'
Bạn có thể xác nhận ngày sử dụng strptime
(xem dưới đây).
Thay vì sử dụng regex, bạn có thể phân tích nó thành một đối tượng datetime.datetime
, mà có lẽ hữu ích hơn:
In [140]: datetime.datetime.strptime("11/12/98","%m/%d/%y")
Out[140]: datetime.datetime(1998, 11, 12, 0, 0)
In [141]: datetime.datetime.strptime("11/12/98","%d/%m/%y")
Out[141]: datetime.datetime(1998, 12, 11, 0, 0)
In [143]: date.year
Out[143]: 1998
In [144]: date.month
Out[144]: 11
In [145]: date.day
Out[145]: 12
Để kiểm tra xem một chuỗi các chữ số cách nhau bởi phía trước-slashes đại diện cho một ngày hợp lệ , bạn có thể sử dụng khối try..except
. Ngày không hợp lệ sẽ tăng ValueError
:
In [159]: try:
.....: datetime.datetime.strptime("99/99/99","%m/%d/%y")
.....: except ValueError as err:
.....: print(err)
.....:
.....:
time data '99/99/99' does not match format '%m/%d/%y'
1
Tôi tìm thấy RE bên dưới hoạt động tốt cho Ngày theo định dạng sau;
- 14-11-2017
- 14.11.2017
- 14 | 11 | 2017
Nó có thể chấp nhận năm từ 2000-2099
Xin đừng quên để thêm $ vào cuối, nếu không chấp nhận $ 14-11-201 hoặc 20177
date="13-11-2017"
x=re.search("^([1-9] |1[0-9]| 2[0-9]|3[0-1])(.|-)([1-9] |1[0-2])(.|-|)20[0-9][0-9]$",date)
x.group()
đầu ra = '13 -11-2017 '
Các vấn đề liên quan
- 1. Python regex: kết hợp định dạng lại mẫu với biến
- 2. ngày kết hợp sử dụng python biểu thức thông thường
- 3. Looping thông qua python regex phù hợp
- 4. Kết hợp nhiều thay thế regex
- 5. Kết hợp Regex giữa hai chuỗi?
- 6. Kết hợp `/^.*$/` regex này là gì?
- 7. Kết hợp regex perl không thành công
- 8. Kết hợp văn bản arabic với regex
- 9. kết hợp awk và multilines (sub-regex)
- 10. Chuyển đổi trường hợp kết hợp chuỗi regex và số
- 11. Kết hợp nhiều mẫu regex với toán tử luân phiên?
- 12. Kết hợp Regex bắt đầu và kết thúc chuỗi
- 13. ngày kết hợp giữa hai ngày trong android
- 14. Sử dụng neo trong python regex để có được kết hợp chính xác
- 15. python multiline regex
- 16. Regex để kiểm tra ngày
- 17. Python regex để phù hợp với chuỗi thoát VT100
- 18. Python regex phù hợp với các thuộc tính Unicode
- 19. Tạo một String phù hợp với một RegEx bằng Python
- 20. Python Regex để phù hợp với Mặt trận YAML Matter
- 21. Python regex chia trường hợp không nhạy cảm trong 2,6
- 22. Kết hợp trên các nền lặp lại trong một regex
- 23. Chuỗi kết hợp regex Ruby từ một mảng?
- 24. Boost C++ regex - cách nhận nhiều kết quả phù hợp
- 25. Trích xuất các kết quả phù hợp từ php regex
- 26. Javascript Regex + Unicode Diacritic Kết hợp các ký tự '
- 27. Kết hợp dấu gạch chéo với một regex
- 28. Regex - Kết hợp giao diện tích cực và tiêu cực
- 29. Trích xuất một phần của một kết hợp regex
- 30. Xóa (bỏ liên kết) các tệp phù hợp với regex
Xin lỗi, lỗi của tôi, tôi đã thử nghiệm với 4 chữ số :) – Bronek