Python(re模块的具体使用)

|-------------------------------------------|--------------------------------------------------|
| 函数 | 功能描述 |
| re.match(pattern,string,flags=0) | 用于从字符串的开始位置进行匹配,如果起始位置匹配成功,结果为Match对象,否则结果为None。 |
| re.search(pattern,string,flags=0) | 用于在整个字符串中搜索第一个匹配的值,如果匹配成功,结果为Match对象,否则结果为None. |
| re.findall(pattern,string,flags=0) | 用于整个字符串搜索所有符合正则表达式的值,结果是一个列表类型。 |
| re.sub(pattern,repl,sreing,count,flags=0) | 用于实现对字符串中指定子串的替换 |
| re.split(pattern,string,maxsplit,flags=0) | 字符串中的split()方法功能相同,都是分隔字符串 |

python 复制代码
import re#导入正则表达式处理模块
pattern='\d\.\d+'
#\d------------表示0~9的整数,点表示转义字符
s='i study python3.22 everyday'#匹配字符串
match=re.match(pattern,s,re.I)
# 在 Python 中,re.match(pattern, s, re.I) 表示使用正则表达式模式 pattern 从字符串 s 的起始位置进行匹配,
# 其中 re.I 是一个标志位,表示匹配时不区分大小写。
print(match)#None
s2='3.11python i study every day'
match2=re.match(pattern,s2)
print(match2)#<re.Match object;span=(0,4),match='3.11'>

print('匹配值的起始位置:',match2.start())
print('匹配值的结束位置:',match2.end())
print('匹配区间的位置元素:',match2.span())
print('待匹配的字符串:',match2.string)
print('匹配的数据:',match2.group())
# 匹配值的起始位置: 0
# 匹配值的结束位置: 4
# 匹配区间的位置元素: (0, 4)
# 待匹配的字符串: 3.11python i study every day
# 匹配的数据: 3.11

以下是search的用法,总的来说,search可以找到数都是没办法找全

python 复制代码
pattern='\d\.\d+'
s='i study python3.11 every day python 2.7'
match=re.search(pattern,s)
s2='4.10 python i study every day'

s3='i study python every day'

match2=re.search(pattern,s2)
match3=re.search(pattern,s3)#None
print(match)
print(match2)
print(match3)

print(match.group())#3.11
print(match2.group())#4.10
#不用写match3因为match3是空字符串

findall

python 复制代码
import re
pattern='\d\.\d+'
s='i study python3.11 every day python 2.7'
s2='4.10 python i study every day'
s3='i study python every day'
lst=re.findall(pattern,s)
lst2=re.findall(pattern,s2)
lst3=re.findall(pattern,s3)

print(lst)
print(lst2)
print(lst3)

#['3.11', '2.7']
# ['4.10']
# []
python 复制代码
import re
pattern='黑客|破解|反爬'
s='我想学习Python反爬'
new_s=re.sub(pattern,'XXX',s)
print(new_s)
#我想学习PythonXXX

s2='https://cn.bing.com/search?q=xy'
pattern2='[?|=]'
lst=re.split(pattern2,s2)
print(lst)
#['https://cn.bing.com/search', 'q', 'xy']
相关推荐
间彧2 分钟前
Java中T类型详解与实际使用
java
凯子坚持 c5 分钟前
C++ 连接 Redis:redis-plus-plus 安装与使用入门指南
java·c++·redis
正在走向自律8 分钟前
Ubuntu系统下Python连接国产KingbaseES数据库实现增删改查
开发语言·数据库·python·ubuntu·kingbasees·ksycopg2
草莓熊Lotso8 分钟前
PyCharm 从入门到高效:安装教程 + 快捷键速查表
开发语言·ide·经验分享·笔记·其他
没有bug.的程序员11 分钟前
Redis vs Memcached vs MongoDB:深入对比与选型指南
java·redis·mongodb·memcached
半桔12 分钟前
【Linux手册】管道通信:从内核底层原理到使用方法
java·linux·服务器·网络·c++
BeyondCode程序员14 分钟前
苹果内购 V1 与 V2 支付流程对比(附示例java代码)
java·后端
叫我阿柒啊15 分钟前
从全栈工程师视角解析Java与前端技术在电商场景中的应用
java· 消息队列· spring boot· 微服务· vue3· 安全· 前端框架
华仔啊15 分钟前
Redis 不只是缓存!Java 打工人必知的 10 个真实工作场景,第 5 个太香了
java·后端
|CXHAO|31 分钟前
使用tomcat本地部署draw.io
java·tomcat·draw.io