Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Ищет в буфере обмена номера телефонов и адреса эл.почты
- # импортируем модули pyperclip (работа с буфером обмена)
- # и re (работа с регулярными выражениями)
- import pyperclip, re
- # регулярное выражение для номера телефона
- phoneRegex = re.compile('''(
- (?:\(?(\d{3})\)?)? # код города
- (?:\s|-)? # разделитель
- (\d{3}) # первые три цифры
- (?:\s|-)? # разделитель
- (\d{2}) # еще две цифры
- (?:\s|-)? # разделитель
- (\d{2}) # еще две цифры
- (?:\s*доб[.а-я]*\s*(\d{2,5}))? # добавочный
- )''', re.VERBOSE)
- # регулярное выражение для адреса эл.почты
- emailRegex = re.compile('''
- [a-z0-9._-]+ # имя пользователя
- @ # @
- [a-z0-9.-]+ # первая часть домена
- \.[a-z]{2,6} # вторая часть домена
- ''', re.VERBOSE | re.IGNORECASE)
- # получить содержимое буфера обмена
- text = str(pyperclip.paste())
- # список для хранения найденных номеров
- # телефонов и адресов эл.почты
- matches = []
- # цикл по найденным номерам телефонов
- for groups in phoneRegex.findall(text):
- phoneNum = '+7 (' + groups[1] + ') ' + groups[2] + '-' + groups[3] + '-' + groups[4]
- if groups[5] != '':
- phoneNum += ' доб.' + groups[5]
- # пропускаем дубли
- if phoneNum not in matches:
- matches.append(phoneNum)
- # цикл по найденным адресам эл.почты
- for groups in emailRegex.findall(text):
- if groups not in matches:
- # пропускаем дубли
- matches.append(groups)
- # копируем результат в буфер обмена
- if len(matches) > 0:
- pyperclip.copy('\n'.join(matches))
- print('Скопировано в буфер обмена:')
- print('\n'.join(matches))
- else:
- print('Телефонные номера и адреса почты не найдены.')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement