Python:Примеры/Поиск телефонных номеров и адресов электронной почты в буфере обмена: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
(не показана 1 промежуточная версия 1 участника)
Строка 7: Строка 7:
=Код=
=Код=


<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
import pyperclip, re
import pyperclip, re


Строка 56: Строка 56:


<references />
<references />
 
{{Навигационная таблица/Python}}
{{Навигационная таблица/Телепорт}}
{{SEO
{{SEO
|Заголовок статьи=Python:Примеры - Поиск телефонных номеров и адресов электронной почты в буфере обмена / Онлайн справочник - wikihandbk.com
|Заголовок статьи=Python:Примеры - Поиск телефонных номеров и адресов электронной почты в буфере обмена / Онлайн справочник - wikihandbk.com

Текущая версия от 06:53, 24 мая 2023

Проверка/Оформление/Редактирование: Мякишев Е.А.


Поиск телефонных номеров и адресов электронной почты в буфере обмена

Код

import pyperclip, re

# Создание регулярного выражения для номеров телефонов
phoneRegex = re.compile(r'''(
    (\d{3}|\(\d{3}\))? # территориальный код
    (\s|-|\.)?         # разделить
    (\d{3})              # первый 3 цифры
    (\s|-|\.)          # разделить
    (\d{4})              # последние 4 цифры
    (\s*(ext|x|ext.)\s*(\d{2,5}))?  # добавочный номер
    )''', re.VERBOSE)

# Создание регулярного выражения для адресов электронной почты
emailRegex = re.compile(r'''(
    [a-zA-Z0-9._%+-]+      # имя пользователя
    @                      # символ @
    [a-zA-Z0-9.-]+         # имя домена
    (\.[a-zA-Z]{2,4}){1,2} # остальная часть
    )''', re.VERBOSE)

# Поиск соответствий в тексте, содержащемся в буфере обмена
text = str(pyperclip.paste())

matches = []
for groups in phoneRegex.findall(text):
    phoneNum = '-'.join([groups[1], groups[3], groups[5]])
    if groups[8] != '':
        phoneNum += ' x' + groups[8]
    matches.append(phoneNum)
for groups in emailRegex.findall(text):
    matches.append(groups[0])

# Копирование результатов в буфер обмена
if len(matches) > 0:
    pyperclip.copy('\n'.join(matches))
    print('Скопировано в буфере обмена:')
    print('\n'.join(matches))
else:
    print('Телефонные номера и адреса электронной почты не обнаружены.')

См.также

Внешние ссылки