正则表达式

正则表达式

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)

posted @   kyle_7Qc  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示