Files
ITMO/Informatics_Lab3_Task3.py
T
LeterZP 7e065b45b7 pass
2026-02-13 19:41:40 +03:00

40 lines
1.7 KiB
Python

# Author = Bosenko Boris Igorevich
# Group = P3115
# Date = 12.11.2025
import re
def cron(text):
pat_min = r'([*]*|((([1-5]?[0-9])[,])*|(((([1-5]?[0-9])|[*])[/])|(([1 5]?[0-9])[-]))?)([1-5]?[0-9])) '
pat_hour = r'([*]*|(((1?[0-9]|2[0-3])[,])*|(((((1?[0-9]|2[0-3])|[*])[/])|((1?[0-9]|2[0-3])[-]))?)(1?[0-9]|2[0-3]))) '
pat_day = r'([*]*|(((([1-9]|[1-2][0-9]|3[0-1])[,])*|(((([1-9]|[1-2][0-9]|3[0-1])|[*])[/])|(([1-9]|[1-2][0-9]|3[0-1])[-]))?)([1-9]|[1-2][0-9]|3[0-1]))) '
pat_mon = r'([*]*|(((([1-9]|(1[0-2]))[,])*|(((([1-9]|(1[0-2]))|[*])[/])|(([1-9]|(1[0-2]))[-]))?)([1-9]|(1[0-2])))) '
pat_week = r'([*]*|(((([0-6])[,])*|(((([0-6])|[*])[/])|(([0-6])[-]))?)[0-6]))'
pat = r'\s*' + pat_min + pat_hour + pat_day + pat_mon + pat_week + r'\s*'
if re.fullmatch(pat, text):
return "Cron-выражение правильное!"
else:
return "Cron-выражение содержит ошибку!"
if __name__ == "__main__":
try:
tests = [
"* 88888 21 * 4",
" 5-15 * 4 6-8 * ",
"** /4 11 * -6 ",
"18,21 * 4/6 * 1,3",
" * 4 19 21 "
]
for test in tests:
print(cron(test), end=" ")
print()
results = [
"Cron-выражение правильное!",
"Cron-выражение правильное!",
"Cron-выражение содержит ошибку!",
"Cron-выражение правильное!",
"Cron-выражение содержит ошибку!"
]
print(*results, sep=" ")
except Exception as error:
print(f"Ошибка: {error}")