Python正则表达式匹配电话号码和邮箱实例演示,正则表达式的基本用法

简介: Python正则表达式匹配电话号码和邮箱实例演示,正则表达式的基本用法

正则表达式是一种文本模式匹配的工具,它用于描述一种字符组成的规则。在文本处理中,正则表达式被广泛用于搜索、替换、匹配、验证等操作。首先举两个正则表达式匹配的实例,然后再简单介绍一下正则表达式的基本用法。

匹配邮箱地址

邮箱地址一般由 用户名@域名 构成。匹配邮箱地址的正则表达式如下:

import re
pattern = r'^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$'
email = 'xiaolanzao@qq.com'
if re.match(pattern, email):
    print('匹配成功')
else:
    print('匹配失败')

解析:


"^":匹配字符串的开头。

"\w+":匹配由字母、数字、下划线组成的一组字符。

"[-+.]":匹配特定的字符"-"、"+"、"."。

"\w+*":匹配由字母、数字、下划线组成的一组字符,可以出现零次或多次。

"@":匹配特定的字符"@"。

"\w+":同上。

"[-.]":匹配特定的字符"-"、"."。

"\w+*":同上。

".":匹配特定的字符"."。

"\w+":同上。

"[-.]":匹配特定的字符"-"、"."。

"\w+*":同上。

"$":匹配字符串的结尾。


匹配电话号码

电话号码可以包含数字、空格、连字符"-"等字符。匹配电话号码的正则表达式如下:

import re
pattern = r'^(\d{3}-|\d{4}-)?(\d{8}|\d{7})$'
phone_number = '010-12345678'
if re.match(pattern, phone_number):
    print('匹配成功')
else:
    print('匹配失败')

解析:


"^":匹配字符串的开头。

"(\d{3}-|\d{4}-)?":将"(\d{3}-|\d{4}-)"作为一个组,匹配其中的字符出现零次或一次。

"\d":匹配数字。

"{3}":匹配前面的字符出现3次。

"|":将两个单元进行或运算,匹配其中任意一个。

"(\d{8}|\d{7})":将"(\d{8}|\d{7})"作为一个组,匹配其中的字符出现一次。

"\d":匹配数字。

"{8}":匹配前面的字符出现8次。

"|":将两个单元进行或运算,匹配其中任意一个。

"$":匹配字符串的结尾。


以上两个例子仅是正则表达式的简单应用,正则表达式在实际应用中还有许多高级用法,需要根据具体情况进行调整。


用法1:字符匹配

正则表达式可以匹配一个或多个字符。常用的字符匹配符号包括:


".":匹配任意单个字符(除了换行符)。

"[ ]":匹配中括号中列出的任意单个字符。如[abc]可以匹配字符"a"、“b”、“c"中的任意一个。

"[^ ]":匹配中括号中没有列出的任意单个字符。如[^abc]可以匹配除了字符"a”、“b”、"c"之外的任意一个字符。


用法2:重复匹配

正则表达式可以匹配一个或多个重复出现的字符。常用的重复匹配符号包括:


"*":匹配前面的字符零次或多次。

"+":匹配前面的字符一次或多次。

"?":匹配前面的字符零次或一次。

"{n}":匹配前面的字符恰好出现n次。

"{n,}":匹配前面的字符至少出现n次。

"{n,m}":匹配前面的字符出现n到m次。


用法3:边界匹配

正则表达式可以匹配字符串的开头和结尾。常用的边界匹配符号包括:


"^":匹配字符串的开头。

"$":匹配字符串的结尾。


用法4:分组匹配

正则表达式可以将多个字符组合成一个单元,并对这个单元进行重复匹配。常用的分组匹配符号包括:


"( )":将其中的字符组合成一个单元。

"|":将两个单元进行或运算,匹配其中任意一个。


总结

上述仅是正则表达式的基本用法,正则表达式还有许多高级特性,如:贪婪匹配、非贪婪匹配、捕获组、预测先行匹配等等。正则表达式需要掌握一定的语法和规则,才能灵活运用。


目录
相关文章
|
25天前
|
机器学习/深度学习 PyTorch 算法框架/工具
python torch基础用法
本教程系统讲解PyTorch基础,涵盖张量操作、自动求导、神经网络构建、训练流程、GPU加速及模型保存等核心内容,结合代码实例帮助初学者快速掌握深度学习开发基础,是入门PyTorch的实用指南。
368 6
|
3月前
|
Go 调度 Python
Golang协程和Python协程用法上的那些“不一样”
本文对比了 Python 和 Go 语言中协程的区别,重点分析了调度机制和执行方式的不同。Go 的协程(goroutine)由运行时自动调度,启动后立即执行;而 Python 协程需通过 await 显式调度,依赖事件循环。文中通过代码示例展示了两种协程的实际运行效果。
185 7
|
7月前
|
数据采集 监控 数据安全/隐私保护
Python正则表达式:用"模式密码"解锁复杂字符串
正则表达式是处理字符串的强大工具,本文以Python的`re`模块为核心,详细解析其原理与应用。从基础语法如字符类、量词到进阶技巧如贪婪匹配与预定义字符集,结合日志分析、数据清洗及网络爬虫等实战场景,展示正则表达式的强大功能。同时探讨性能优化策略(如预编译)和常见错误解决方案,帮助开发者高效掌握这一“瑞士军刀”。最后提醒,合理使用正则表达式,避免过度复杂化,追求简洁优雅的代码风格。
194 0
|
6月前
|
算法 Python
Apriori算法的Python实例演示
经过运行,你会看到一些集合出现,每个集合的支持度也会给出。这些集合就是你想要的,经常一起被购买的商品组合。不要忘记,`min_support`参数将决定频繁项集的数量和大小,你可以根据自己的需要进行更改。
239 18
|
6月前
|
人工智能 数据库连接 API
掌握Python的高级用法:技巧、技术和实用性示例
本文分享了Python的高级用法,包括生成器、装饰器、上下文管理器、元类和并发编程等。生成器通过`yield`实现懒加载序列;装饰器用于增强函数功能,如添加日志或性能分析;上下文管理器借助`with`语句管理资源;元类动态定制类行为;并发编程利用`threading`和`asyncio`库提升任务执行效率。掌握这些高级概念可优化代码质量,解决复杂问题,提高程序性能与可维护性。
140 6
|
7月前
|
Python
Python教程:os 与 sys 模块详细用法
os 模块用于与操作系统交互,主要涉及夹操作、路径操作和其他操作。例如,`os.rename()` 重命名文件,`os.mkdir()` 创建文件夹,`os.path.abspath()` 获取文件绝对路径等。sys 模块则用于与 Python 解释器交互,常用功能如 `sys.path` 查看模块搜索路径,`sys.platform` 检测操作系统等。这些模块提供了丰富的工具,便于开发中处理系统和文件相关任务。
319 14
|
8月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
|
10月前
|
前端开发 搜索推荐 编译器
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
510 34
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
|
8月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
本文来自YashanDB官网,介绍如何处理Oracle客户端sql*plus中使用@@调用同级目录SQL脚本的场景。崖山数据库23.2.x.100已支持@@用法,但旧版本可通过Python脚本批量重写SQL文件,将@@替换为绝对路径。文章通过Oracle示例展示了具体用法,并提供Python脚本实现自动化处理,最后调整批处理脚本以适配YashanDB运行环境。
|
10月前
|
人工智能 编译器 Python
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
239 0
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈

推荐镜像

更多