#!/usr/bin/env python # coding: utf-8 # Open in Colab # Номер телефона в произвольном формате: # # * если в строке встречается '45' или '4-5' или '4--5', то... # * если в строке встречается '77' или '7-9' или '3--8', то... # # Можем заменить строкой из метасимволов, называемой `регулярным выражением`. # # Регулярному выражению \d соответствует любая одиночная цифра от 0 до 9 # # * `\d\d или \d-\d или \d--\d` # * `\d{2} или \d-\d или \d-{2}\d` # In[ ]: import re phone = re.compile(r'\d') # Возвращает объект Regex m = phone.search('4') # Ищет совпадения с регулярными выражениями. Возвращает None или объект Match m.group() # Возвращает найденное соответствие # In[ ]: phone = re.compile(r'\d-\d') phone.search('4-4').group() # In[ ]: phone = re.compile(r'\d-\d') phone.search('привет, 4-4!').group() # In[ ]: import re r = re.compile(r'\d(-)?\d') # 0 или 1 символ r.search('4-5').group() # In[ ]: r.search('45').group() # In[ ]: r.search('4=5').group() # In[ ]: r = re.compile(r'\d(-)*\d') # 0 или более символов r.search('45').group() # In[ ]: r.search('4-5').group() # In[ ]: r.search('4--5').group() # In[ ]: r = re.compile(r'\d(-)+\d') # 1 или более символов r.search('45').group() # In[ ]: r.search('4-5').group() # In[ ]: r = re.compile(r'\d(-){1,3}\d') r.search('4--5').group() # In[ ]: # аналог: re.search(r'\d(-){1,3}\d', '4--5').group() # In[ ]: r.search('4---5').group() # In[ ]: r.search('45').group() # In[ ]: re.compile(r'\d-\d').search('4-5 4-5 4-5').group() # In[ ]: re.findall(r'\d-\d', '4-5 4-5 4-5') # ### Полезные материалы: # # * http://dfedorov.spb.ru/python3/regexp.pdf # * https://www.youtube.com/watch?v=zk7306cHIkg # * https://docs.python.org/3/library/re.html # * https://docs.python.org/3/howto/regex.html # * https://habr.com/ru/post/349860/ # * https://regexr.com/ # In[ ]: