# -*- coding: utf-8 -*-
"""
@Time:2019/5/20 15:34
@Author: Cai jz
"""
import re, pyperclip
#电话号码正则匹配表达式
phoneRegex = re.compile(r'''(
(\d{3}|\(\d{3}\))? #匹配区号
(\s|-|\.)? #分隔符空格,短横,句点.
(\d{3}) #第一个3位数号码
(\s|-|\.) #分隔符空格,短横,句点.
(\d{4}) #最后4位数号码
(\s*(ext|x|ext.)\s*(\d{2,5}))? # extension
)''', re.VERBOSE)
#email正则匹配表达式
emailRegex = re.compile(r'''(
[a-zA-Z0-9._%+-]+ #用户名
@ #@域名符
[a-zA-Z0-9.-]+ #域名
(\.[a-zA-Z]{2,4}) # 顶级域名
)''', 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) #对于匹配的电话号码, 你不想只是添加分组 0你希望添加的电话号码是唯一的、 标准的格式。
for groups in emailRegex.findall(text):
matches.append(groups[0]) #分组 0 匹配整个正则表达式
if len(matches) > 0:
pyperclip.copy('\n'.join(matches))
print(pyperclip.copy('\n'.join(matches)))
print('Copied to clipboard')
print('\n'.join(matches))
else:
print('No phone numbers or email address found.')