# 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}")