Uploaded by zaz765831

Програмування

advertisement
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Звіт
до лабораторної роботи №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 та його можливостями, зробив декілька регулярних виразів для пошуку
тексту по шаблону.
Download