python内置模块-re模块介绍使用

1、正则表达式常用符号

**元字符:**具有特殊意义的专用字符

例如使用 ^和 $ 分别匹配开始和结束

限定符 :用于限定匹配次数qit

其他字符

2、re模块介绍使用

用于实现python中的表达式

2.1、re.match()函数的使用

pattern是匹配格式,string是字符串,使用时需要从起始位置匹配成功才能争取匹配。匹配对象有相应方法可以返回初始、结束数据的位置,匹配返回范围的返回、匹配数据返回

示例:将数字类似于3.1...的数据匹配

python 复制代码
import re

str = "I studay python 3.11 everyDay"
#  /d 0-9 +匹配前面的数字出现1次或者多次
patten = "\d\.\d+"
# 从字符串开始位置匹配,如果起始匹配成功则match对象,否则返回为None
match = re.match(patten,str)
# None
print(match)

# 修改字符串方式可匹配
str1 = "3.11 python I studay everyday "
match1= re.match(patten,str1)
# 输出:<_sre.SRE_Match object; span=(0, 4), match='3.11'>
print(match1)
print("匹配的起始位置:",match1.start())
print("匹配的结束位置:",match1.end())
print("匹配区间相同的位置",match1.span())
print("待匹配的字符串:",match1.string)
print("匹配的数据:",match1.group())

输出

Matlab 复制代码
None
<_sre.SRE_Match object; span=(0, 4), match='3.11'>
匹配的起始位置: 0
匹配的结束位置: 4
匹配区间相同的位置 (0, 4)
待匹配的字符串: 3.11 python I studay everyday 
匹配的数据: 3.11

2.2、seach()和findall()函数使用

python 复制代码
import re
pattern ="\d\.\d+"
s = "I study Python 3.11 every day Python 2.7 I love you"
# 返回第一个符合格式的字符串,无则返回None,只有一个
match1 = re.search(pattern,s)
print(match1)
print(match1.group())

# 查找所有符合匹配格式的结果,返回类型为字符串
match2 = re.findall(pattern,s)
print(match2)

输出

Matlab 复制代码
<_sre.SRE_Match object; span=(15, 19), match='3.11'>
3.11
['3.11', '2.7']

2.3、sub()替换

re.sub(pattern,repl,string),pattern是被匹配的正则,repl是需要替换成的内容,string是需要被匹配的字符串。

示例:将字符串中包含黑客或者破解或者反爬替换成xxx

python 复制代码
import re
pattern = "黑客|破解|反爬"
s = "我想学习python,破解一些VIP视频,可以用python实现反爬吗?"
new_s = re.sub(pattern,"xxx",s)
print(new_s)

输出:

我想学习python,xxx一些VIP视频,可以用python实现xxx吗?

2.4、split()函数

匹配字符串中想要分割的符号,返回内容是已经被分割的列表,

python 复制代码
import re

s2 = "https://www.baidu.com/s?wd=csdn&rsv_spt=1"
pattern2 = "[?|&]"
new_s2 = re.split(pattern2,s2)
print(new_s2 )

输出:

'https://www.baidu.com/s', 'wd=csdn', 'rsv_spt=1'

相关推荐
非优秀程序员4 小时前
第04章 邮箱大战,163 与 QQ 的暗战|《互联网产品恩仇录》
java·vue.js·架构
知已难寻4 小时前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
文丑颜不良啊6 小时前
LeetCode2481~2500题目解析
java·leetcode
Flynn Liang7 小时前
同一需求三套写法:用 Spring AI、LangChain4j、AgentScope Java 各实现一个带工具调用的 RAG 助手(实战对比)
java·人工智能·大模型·架构设计·spring ai·langchain4j·agentscope
聪明的笨猪猪8 小时前
实际工程问题:AI 生成 Spring Cache(@Cacheable / @CachePut / @CacheEvict)缓存注解踩坑
java·经验分享·面试·ai编程
用户956256254298 小时前
跟做:Firecrawl 单页转 Markdown 再丢进沙箱总结
python·api
愿有所息8 小时前
记一次 ARM64 + JDK8 上 fastjson2 的诡异数据错乱
java
威哥爱编程9 小时前
模拟面试智能体开发实战 02:回答等半分钟,谁还愿意练?把服务端和流式输出搭起来
python·agent·harmonyos
秋饼9 小时前
MCP 2026-07-28 无状态协议大改版:Spring AI 2.1 多轮往返请求与网关路由落地
java·ai·技术分享·后端开发
威哥爱编程9 小时前
模拟面试智能体开发实战 01:面试挂了都不知道挂在哪?用 Python 给自己造一个随叫随到的 AI 面试官
python·agent·harmonyos