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:分组匹配

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


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

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


总结

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


目录
相关文章
|
30天前
|
移动开发 JavaScript 前端开发
JavaScript的正则表达式实现邮箱校验
JavaScript的正则表达式实现邮箱校验
45 1
|
18天前
|
网络协议 JavaScript 前端开发
使用正则表达式验证身份证号、QQ号、手机号、邮箱、地址、邮编、银行卡号、学号、车牌号、快递单号、验证码、ISBN号、网址、IPV4地址、IPV6地址、出生年月日、姓名2
使用正则表达式验证身份证号、QQ号、手机号、邮箱、地址、邮编、银行卡号、学号、车牌号、快递单号、验证码、ISBN号、网址、IPV4地址、IPV6地址、出生年月日、姓名
234 0
|
3天前
|
存储 机器学习/深度学习 数据可视化
Python面板时间序列数据预测:格兰杰因果关系检验Granger causality test药品销售实例与可视化
Python面板时间序列数据预测:格兰杰因果关系检验Granger causality test药品销售实例与可视化
44 6
|
3天前
|
机器学习/深度学习 数据可视化 算法
PYTHON用决策树分类预测糖尿病和可视化实例
PYTHON用决策树分类预测糖尿病和可视化实例
12 0
|
4天前
|
算法 数据可视化 Python
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
11 0
|
6天前
|
Python
python学习12-类对象和实例对象
python学习12-类对象和实例对象
|
12天前
|
Python
python中threads.append的用法
将线程对象`t`添加到`threads`列表便于管理与控制线程,如等待所有线程完成。通过迭代列表并调用`join`方法,可依次等待每个线程执行完毕,实现同步。代码示例: ```python for t in threads: t.join() print("All threads are done!") ``` `join`方法使当前线程阻塞,直到线程执行结束。所有线程完成后,输出"All threads are done!"。
15 1
|
27天前
|
程序员 数据处理 开发者
【Python小技巧】通过实例说明推导式,条件表达式和Lambda函数
【Python小技巧】通过实例说明推导式,条件表达式和Lambda函数
23 2
|
1月前
|
Python
请解释Python中的正则表达式以及如何使用它们进行文本处理。
请解释Python中的正则表达式以及如何使用它们进行文本处理。
9 0
|
1月前
|
Python
python函数用法(五)
python函数用法(五)
24 1