正则表达式微了解

正则表达式

""" 定义:正则表达式是一门独立的语言 跟其他编程语言都没有关系!!! 如果想在python代码中使用正则 需要借助于内置模块re """ # 什么是正则表达式? 利用一些特殊符号的组合去字符组中筛选出符合条件的数据 """ 1.必须是11位 2.必须是纯数字 3.必须符合手机号的排布 15 16 18 19 """ # phone = input('请输入你的手机号>>>:').strip() # if len(phone) == 11: # if phone.isdigit(): # if phone.startswith('15') or phone.startswith('16') or phone.startswith('18') or phone.startswith('19'): # print('手机号正确') # else: # print('格式不对') # else: # print('手机号必须是纯数字') # else: # print('必须是11位') import re phone_number = input('please input your phone number : ') if re.match('^(13|14|15|18)[0-9]{9}$',phone_number): print('是合法的手机号码') else: print('不是合法的手机号码')

image

字符组

# 特征是使用中括号括起来的 字符组默认只能单个单个字符匹配 [0123456789] # 匹配0到9之间任何一个数字 可以简写为 [0-9] [a-z] # 匹配小写字母a到字母z其中任意一个字母 [A-Z] # 匹配大写字母A到字母Z其中任意一个字母 [a-zA-Z0-9] # 匹配所有的数字 小写 大写

image

特殊符号

# 特殊符号默认也只能单个单个字符匹配 . 匹配除换行符以外的任意字符 \d 匹配数字 ^ 匹配字符串的开始 $ 匹配字符串的结尾 """^与$组合使用可以精准限制要查找的数据""" a|b 匹配字符a或字符b () 匹配括号内的表达式也表示一个组(不会影响正则表达式的匹配单纯的分组而已) [...] 匹配字符组中的字符 [^...] 匹配除了字符组中字符的所有字符

image

量词

1.表达式在没有量词修饰的情况下 都是单个单个匹配 2.量词必须结合(字符串、特殊符合等)一起使用 不能单独出现 3.量词只能影响前面的一个表达式(ab+ 只能影响b) * 重复零次或更多次 + 重复一次或更多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次 """ 正则表达式中的量词默认都是'贪婪匹配' """

image

贪婪匹配与非贪婪匹配

# 带匹配的字符串 <script>123</script> # 正则表达式 <.*> '''默认贪婪匹配 尽可能多的匹''' # 将贪婪变为非贪婪 只需要在量词的后面加问号即可 <.*?> '''非贪婪匹配 尽可能少的匹 结束条件有左右两边决定'''

image


__EOF__

本文作者祈安
本文链接https://www.cnblogs.com/jyc666/p/15598619.html
关于博主:没有收拾残局的能力,就别放纵善变的情绪
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   丶祈安  阅读(43)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
点击右上角即可分享
微信分享提示