【正则表达式实战运用】电话号码和邮箱地址快速提取程序

在这里插入图片描述


前言

本项目是为了练习所学的正则表达式与模式匹配,练习参考书籍《Python编程快速上手——让繁琐工作自动化》,在原本项目上进行了个性化修改。

——

一、问题背景

假设有这样一个无聊的任务,在一篇很长的网页或者文章中找到所有的电话号码、手机号码和邮箱地址。

我们需要设计一个程序来帮助我们在剪贴板中快速查找一篇长文档中所有号码和邮箱地址,并整整齐齐地打印出来。

大致的流程是这样的:
我们按一下Ctrl+A全选文本,再用Ctrl+C将它复制到剪贴板,然后运行程序,最终电话号码、手机号码、邮箱地址就会整整齐齐在显示窗口打印出来。

——

二、功能分析

第一步:构建正则表达式

  • 构建电话号码、手机号码和邮箱地址三个正则表达式
  • 我们必须知道三个内容的组成形式,且尽可能完整涵盖所有形式的号码和邮箱

第二步:进行正则匹配

  • 利用pyperclip获得文本内容
  • 对三个正则表达式进行匹配,使用findall()找到所有匹配
  • 将匹配到内容进行格式统一整理,再分别依次添加到列表里面,方便后面的打印操作

第三步:打印结果

  • 整齐打印电话号码、手机号码和邮箱地址三个内容
  • 如果没有找到匹配内容,则显示没有找到的消息

框架如下:

import re
import pyperclip

# 第一步:构建正则表达式

# 【01】创建电话号码的正则表达式

# 【02】创建手机号码的正则表达式

# 【03】创建邮箱的正则表达式

# 第二步:进行正则匹配

# 第三步:打印结果

——

三、代码实现

那么就直接上代码,具体的注释在代码中写明

import re
import pyperclip

# 第一步:构建正则表达式

# 创建电话号码的正则表达式
phoneRegex = re.compile(r'''(
    (\d{3}|\(\d{3}\))             # 3位数字或者带括号的3位数字
    (\s|-)?                       # 分隔符:空格或者-(匹配0次或1次)
    (\d{3})                       # 3位数字
    (\s|-)                        # 分隔符:空格或者-
    (\d{4})                       # 4位数字
    )''',re.VERBOSE)              # re.VERB
  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值