Форум сайта python.su
В тексте мы будем искать номер телефона Украины в международном формате, шаблон которого: +380(67)777-7-777 или +380(67)777-77-77
Напишите регулярное выражение для find_all_phones, которая будет в тексте (параметр text) находить все телефонные номера по указанному шаблону и возвращать список полученных из текста совпадений.
С целью упрощения примем, что:
используем только цифры и символы +, (, ) и -
телефонный номер начинается с символа +
шаблон телефона символ + затем три цифры 380, символ (, две цифры, символ ), три цифры, символ –, одна или две цифры, символ –, две или три цифры
Длина шаблона телефонного номера всегда 17 символов.
import re def find_all_phones(text): print(text) result = re.findall(r"(\+380\(\d{2}\)\d{3}-\d{1,2}-\d{2,3})", text) print(result) return result
Офлайн
>>> import re >>> >>> pat = r'\+380\(\d{2}\)\d{3}-\d(?:-\d{3}|\d-\d{2})' >>> >>> text = """ ... Irma +380(67)777-7-771 second +380(67)777-77-77 aloha a@test.com abc111@test.com.net +380(67)111 -777-777+380(67)777-77-787 ... """ >>> >>> out = re.findall(pat, text) >>> out ['+380(67)777-7-771', '+380(67)777-77-77', '+380(67)777-77-78'] >>>
Отредактировано py.user.next (Янв. 17, 2023 21:36:23)
Офлайн
А что означает символ :?
Офлайн
А что тут нужно исправить?
Функция find_all_links возвращает неверный результат: . Ожидалось, что функция find_all_links при получении параметра 'The main search site in the world is https://www.google.com social network http://github.com There they share their code. some url to check https://www..facebook.com www.facebook.com ' вернет следующий список
import re def find_all_links(text): result = [] iterator = re.finditer(r"\bhtt.{1,2}\://\w{1,}\.\w{1,}.\w{1,}", text) for match in iterator: result.append(match.group()) return result
Офлайн
Отмена сделал все
Офлайн
Alduinhttps://docs.python.org/3/library/re.html
А что означает символ :?
(?:…)Короче, это группа, которая используется только для группирования символов внутри себя и которая снаружи группой не считается.
A non-capturing version of regular parentheses. Matches whatever regular expression is inside the parentheses, but the substring matched by the group cannot be retrieved after performing a match or referenced later in the pattern.
Отредактировано py.user.next (Янв. 17, 2023 21:39:23)
Офлайн