正则表达式
正则表达式
1.1 元字符
-
具有特殊意义的专用字符
- 例如:"^"和"$" 分别表示开始与结束
1.2 限定符
-
用于限定匹配的字数
1.3 其他字符
re模块
-
python中的内置模块,用于实现python中的正则表达式操作
-
应用
import re #导入模块
pattern='\d+.\d+' #+限定符,\d 0-9 数字出现1次或多次
s="I study Python 3.11 every day" #待匹配字符串
【' ① re.match 从开始位置开始匹配 '】
match = re.match(pattern,s,re.I) #pattern:正则规则,s:待匹配字符串;re.I:忽略大小写
print(match) #None
s2="3.11 Python I study every day"
match2 = re.match(pattern,s2,re.I)
print(match2) #<re.Match object; span=(0, 4), match='3.11'>
print('起始位置:',match2.start()) # 起始位置: 0
print('结束位置:',match2.end()) # 结束位置: 4
print('匹配区间的位置元素:',match2.span()) # 匹配区间的位置元素: (0, 4)
print('待匹配的字符串:',match2.string) # 待匹配的字符串: 3.11 Python I study every day
print('匹配的数据:',match2.group()) # 匹配的数据: 3.11
---------------------
import re #导入模块
pattern = r'13[4-9]\d{8}' # 表示匹配以 13 开头,第三位是 4 到 9 之间的数字,后面跟着任意 8 个数字的字符串
lst=['13809876543','145025886248','132345678965']
for i in lst:
match=re.match(pattern,i)
if match != None:
print(match,match.group())
--------------------------------------------------------------------------
s3="3.11 Python I study 3.1"
s4="I study Python 3.10 every day" #待匹配字符串
s5="I study Python every day"
【' ② re.search 整个字符串搜索 只搜索第一个值' 】
match3 = re.search(pattern,s3,re.I)
print(match3) # < re.Match object; span=(0, 4), match='3.11'>
print(match3.group()) # 3.11
match4 = re.search(pattern,s4,re.I)
print(match4) # <re.Match object; span=(15, 19), match='3.11'>
print(match4.group()) # 3.10
match5 = re.search(pattern,s5,re.I)
print(match5) # None
-----------------------------------------------------------------------------
【 '③ re.findall 整个字符串搜索 搜索所有相匹配的值,结果为列表类型 '】
import re #导入模块
#+限定符,\d 0-9 数字出现1次或多次
pattern=r'\d+.\d+'
s0="3.11 Python I study 3.1"
match0 = re.findall(pattern,s0)
print(match0)
for i in match0:
print(i)
------------------------------------------------------------------------------
【' ④ re.sub 用于实现字符串中特定的字符的替换 '】
import re #导入模块
#+限定符,\d 0-9 数字出现1次或多次
pattern='黑客|破解|反爬'
s="我想学习一下python,想破解一些vip视频,python可以实现无底线反爬嘛?"
new_s=re.sub(pattern,'xxx',s)
print(new_s) # 我想学习一下python,想xxx一些vip视频,python可以实现无底线xxx嘛?
--------------------------------------------------------------------------------
【' ⑤ re.split 字符串中的split()方法相同,都是分隔字符串 '】
s1='https://www.baidu.com/s?wd=billibili&rsv_spt=1'
pattern1 = '[?&]'
new_s1=re.split(pattern1,s1)
print(new_s1)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)