Python匹配电话和email

# -*- 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.')

你可能感兴趣的:(Python正则表达式)