МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Звіт до лабораторної роботи №3 з курсу: «Програмування скриптовими мовами. Частина 2» на тему: « РЕГУЛЯРНІ ВИРАЗИ» Варіант - 8 Виконав: ЛЬВІВ – 2021 МЕТА РОБОТИ Навчитися використовувати регулярні вирази з модуля re для опрацювання текстової інформації. ЗАВДАННЯ 8 9, 19, 29, 34, 38 9.Написати РВ для знаходження всіх слів у тексті, які містять літеру 'e' за якою йдуть дві або більше літери 'ss'. 19. Написати РВ для знаходження всіх слів у тексті довжиною 6 і більше символів. 29. Написати РВ для знаходження перших двох літер кожного слова в тексті. 34. Написати РВ який би знаходив у тексті дати у форматі YYYY-MM-DD і повертав та виводив їх. Приклад валідних дат: "2016-01-02", "1900-01-01". Приклад невалідних дат: "2016-02-99", "20-02-20", "1980-30-05". 38. Написати РВ який би видаляв у ІР-адресі нулі на початку октету та вивести результат. Наприклад: "216.08.094.196" � 216.8.94.196. Лістинг програм та результат import re # Написати РВ для знаходження всіх слів у тексті, які містять літеру 'e' за якою йдуть дві або більше літери 'ss'. text1 = 'hessss wwess peoplesss Lorem ipsum dolor sit amet, consectetur adipiscing elit. ' \ 'Vestibulum quis felis urna. Fusce eget justo est. Aliquam auctor diam ac ante consectetur, ' \ 'eget imperdiet nulla tincidunt. Curabitur velit turpis, efficitur nec urna eget, fringilla ' \ 'consectetur enim. Proin a diam tristique, eleifend ipsum pharetra, maximus neque. Curabitur sit' \ ' amet nisl eu tortor eleifend pulvinar. Pellentesque non luctus ligula. Praesent sed ornare ante,' \ ' sit amet porta urna. Duis blandit dignissim ipsum id ultricies. Mauris placerat egestas porttitor.' rule = r"\b([^ ]*e[s]{2,})\b" res = re.findall(rule, text1) for match in res: print(match, end=' ') print("\n") # Написати РВ для знаходження всіх слів у тексті довжиною 6 і більше символів. text2 = 'hessss wwess peoplesss Lorem ipsum dolor sit amet, consectetur adipiscing elit.' \ ' Vestibulum quis felis urna. Fusce eget justo est. Aliquam auctor diam ac ante consectetur, ' \ 'eget imperdiet nulla tincidunt. Curabitur velit turpis, efficitur nec urna eget, fringilla ' \ 'consectetur enim. Proin a diam tristique, eleifend ipsum pharetra, maximus neque. ' \ 'Curabitur sit amet nisl eu tortor eleifend pulvinar. Pellentesque non luctus ligula. ' \ 'Praesent sed ornare ante, sit amet porta urna. Duis blandit dignissim ipsum id ultricies. ' \ 'Mauris placerat egestas porttitor.' rule = r"\S{6,}\b" res = re.findall(rule, text2) for match in res: print(match, end=' ') print("\n") # Написати РВ для знаходження перших двох літер кожного слова в тексті. text3 = 'hessss wwess peoplesss Lorem ipsum dolor sit amet, consectetur adipiscing elit. ' \ 'Vestibulum quis felis urna. Fusce eget justo est. Aliquam auctor diam ac ante consectetur, ' \ 'eget imperdiet nulla tincidunt. Curabitur velit turpis, efficitur nec urna eget, fringilla ' \ 'consectetur enim. Proin a diam tristique, eleifend ipsum pharetra, maximus neque. Curabitur ' \ 'sit amet nisl eu tortor eleifend pulvinar. Pellentesque non luctus ligula. Praesent sed ornare ' \ 'ante, sit amet porta urna. Duis blandit dignissim ipsum id ultricies. Mauris placerat egestas porttitor.' rule = r"\b[a-zA-Z]{,2}" res = re.findall(rule, text3) for match in res: print(match, end=' ') print("\n") text4 = 'hessss 2016-11-11 5555-55-55 wwess peoplesss Lorem ipsum dolor sit amet, ' \ 'consectetur adipiscing elit. Vestibulum quis felis urna. Fusce eget justo est. ' \ 'Aliquam auctor diam ac ante consectetur, eget imperdiet nulla tincidunt. Curabitur ' \ 'velit turpis, efficitur nec urna eget, fringilla consectetur enim. Proin a diam tristique, ' \ 'eleifend ipsum pharetra, maximus neque. Curabitur sit amet nisl eu tortor eleifend pulvinar.' \ ' Pellentesque non luctus ligula. Praesent sed ornare ante, sit amet porta urna. Duis blandit ' \ 'dignissim ipsum id ultricies. Mauris placerat egestas porttitor.' rule = r"[0-9][0-9][0-9][0-9]-[0-1][0-9]-[0-3][0-9]" res = re.findall(rule, text4) for match in res: print(match, end=' ') print("\n") ip = "216.08.094.196 78.05 132.04.25.17" all_ip_addresses = re.sub('\.[0]*', '.', " ".join(re.findall("(?:[0-9]{1,3}\.){3}[0-9]{1,3}" , ip))) print(all_ip_addresses) Висновок: на цій лабораторній роботі я ознайомився з регулярними виразами, а саме з модулем re та його можливостями, зробив декілька регулярних виразів для пошуку тексту по шаблону.