From 0c829c65092c2931487d1ec690030d5eda29d940 Mon Sep 17 00:00:00 2001 From: Andrew Date: Sat, 13 Apr 2019 18:51:01 +0400 Subject: =?UTF-8?q?=D0=A7=D0=B5=D1=82=D0=B2=D0=B5=D1=80=D1=82=D1=8B=D0=B9?= =?UTF-8?q?=20=D0=B4=D0=B5=D0=BD=D1=8C,=20=D0=B2=D1=82=D0=BE=D1=80=D0=BE?= =?UTF-8?q?=D0=B9=20=D1=82=D0=B0=D1=81=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- day4/task2/task2.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 day4/task2/task2.py diff --git a/day4/task2/task2.py b/day4/task2/task2.py new file mode 100644 index 0000000..b4c69d2 --- /dev/null +++ b/day4/task2/task2.py @@ -0,0 +1,17 @@ +import re + +with open('index.html') as f: + data = f.read() + + +# Оставлю паттерн в этом виде, потому что пайчарм подсвечивает регулярки в связанных с ними функциях +url_pattern = re.compile(r'https?://([a-zA-Z0-9-_]+?\b\.)+([a-zA-Z0-9-_]+?\b)/?(([a-zA-Z0-9-_.]+?\b/)+([a-zA-Z0-9\-_.]+)/?)?') + +# re.DOTALL нужен потому что в примере внутри тега с картинкой есть перевод строки, +# а . не матчит переносы. Можно было бы заменить ".*?" на "(\n|.)*?", но так может появиться +# лишняя группа в начале из-за чего искомая ссылка не будет гарантированно(!) первой сматченной группой. +pattern = re.compile(f'', re.DOTALL) + +matches = re.findall(pattern, data) +links = list(map(lambda match: match[0], matches)) +print(links) -- cgit v1.2.3