Python匹配电话和email

该博客使用Python编写代码,借助re模块实现正则匹配。定义了电话号码和邮箱的正则表达式,从剪贴板获取文本进行匹配,将匹配到的电话号码和邮箱整理成标准格式,复制到剪贴板并输出,若未匹配到则给出提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值