Форум сайта python.su
![[RSS Feed] [RSS Feed]](/static/djangobb_forum/img/feed-icon-small.png) 
			 
							 0
  0   
								
								В тексте мы будем искать номер телефона Украины в международном формате, шаблон которого: +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
Офлайн
 
							 857
  857   
								
								>>> 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)
Офлайн
 
							 0
  0   
								
								А что означает символ :?
Офлайн
 
							 0
  0   
								
								А что тут нужно исправить?
Функция 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
Офлайн
 
							 0
  0   
								
								Отмена сделал все
Офлайн
 
							 857
  857   
								
								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)
Офлайн
![[RSS Feed] [RSS Feed]](/static/djangobb_forum/img/feed-icon-small.png)