21 lines
761 B
Python
21 lines
761 B
Python
import re
|
||
from datetime import date
|
||
|
||
|
||
def parse_training_date(raw_date: str) -> date:
|
||
patterns = [
|
||
r"^(?P<day>[0-9]{2})\.(?P<month>[0-9]{2})\.(?P<year>[0-9]{4})*",
|
||
r"^(?P<year>[0-9]{4})\-(?P<month>[0-9]{2})\-(?P<day>[0-9]{2})*",
|
||
r"^(?P<year>[0-9]{4})\.(?P<month>[0-9]{2})\.(?P<day>[0-9]{2})*",
|
||
r"^(?P<day>[0-9]{2})\.(?P<month>[0-9]{2})\.(?P<year>[0-9]{4})*",
|
||
]
|
||
|
||
for pattern in patterns:
|
||
match = re.match(pattern, raw_date)
|
||
if match:
|
||
day = int(match.group("day"))
|
||
month = int(match.group("month"))
|
||
year = int(match.group("year"))
|
||
return date(year, month, day)
|
||
|
||
raise ValueError(f"Не удалось найти дату в строке: {raw_date}")
|