python正则表达式

正则表达式
'''
正则表达式其实是一门独立的语言 跟其他编程语言都没有关系!!!
如果想在python代码中使用正则,需要借助于内置模块re
'''
什么是正则表达式?
利用一些特殊符号的组合去字符串中筛选出符合条件的数据
利用正则表达式实现输入正确的电话号
要求:
'''
必须是11位数
必须是纯数字
必须符合手机号的开头排布 13 15 18
'''
# 不使用正则:
phone = input('请输入你的电话号码:').strip()
if len(phone) == 11:
if phone.isdigit():
if phone.startswith('15')or phone.startswiht('13') or phone.startswith('18')
print('输入手机号正确!')
else:
print('输入格式错误!')
else:
print('手机号码为纯数字!')
else:
print('请输入11位数的号码')
# 使用正则表达式:
import re
phone_number = input('please input your phone number : ')
if re.match('^(13|15|18)[0-9]{9}$',phone_number):
print('是合法的手机号码')
else:
print('不是合法的手机号码')
字符组
# 特征是使用中括号括起来的 字符串默认只能单个单个字符匹配
[0123456789] # 匹配0到9之间任何一个数字
可以简写为
[0-9]
[a-z] # 匹配小写字母a到字母z其中任意一个字母
[A-Z] # 匹配大写字母A到字母Z其中任意一个字母
[a-zA-Z0-9] # 匹配所有数字 小写 大写
特殊符号
# 特殊符号默认以至能单个单个字符匹配
. 匹配除换行符以外的任意字符
\d 匹配数字
^ 匹配字符串的开始
$ 匹配字符串的结尾
# 如果 ^ 和 $ 结合使用可以精准限制要查找的数据
a|b 匹配字符a或者字符b
() 匹配括号内的表达式一表示一个组(不用影响正则表达式的匹配单纯的分组而已)
[...] 匹配字符组中的字符
[^...] 匹配吃了字符组中字符的所有字符
量词
1.表达式在没有两次修饰的情况下 都是单个单个匹配的
2.量词必须结合(字符串、特殊符号等)一起使用 不能单独出现
3.量词只能影响前面的一个表达式(ab+ 只能影响b)
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
# 正则表达式中的量词默认都是'贪婪匹配'
贪婪匹配与非贪婪匹配
# 待匹配的字符串
<sqwejsxn>123</sqwejsxn>
# 正则表达式
<.*> '''默认贪婪匹配 尽可能多的匹配''' 则打印出所有字符串
# 将贪婪变为非贪婪 只需要在两次后面加问好即可
<.*?> # 非贪婪匹配 尽可能少的匹配 结束条件由左后两边决定
则打印为 <sqwejsxn></sqwejsxn>
部分常见的正则(身份证号 电话号 邮箱....) 则不要自己编写 直接去搜索即可 效率最重要
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)