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']
相关推荐
金銀銅鐵4 小时前
带您看懂字节码指令(一):一帧里有什么
java·后端·ai编程
nice_lcj5206 小时前
【从零理解 Spring AI · 14】RAG 的四个环节:加载、切分、向量化、检索
java·spring boot·embedding·向量数据库·rag·spring ai·ai应用开发
SomeOtherTime6 小时前
Rust所有权(AI回答)
开发语言·后端·rust
Easyhood6 小时前
Android 开发入门实践(十四):Compose 副作用入门与四个常用 API
android·开发语言·kotlin·android jetpack·compose
白杨尚青7 小时前
C++进阶篇(六):map 和 set 的模拟实现——用红黑树封装 mymap/myset(迭代器 + operator[])
开发语言·c++·迭代器·stl·set·map·红黑树
学长毕设7 小时前
基于springboot科创竞赛信息平台-附源码
java·spring boot·后端
聪明的笨猪猪8 小时前
Java 工程案例:AI 生成 @Async 异步线程池踩坑
java·经验分享·面试·ai编程
学长毕设8 小时前
基于SpringBoot公务员考试交流平台-附源码
java·spring boot·后端
SL_staff10 小时前
私有化低代码:面向强监管行业的可控数字化实践
java·低代码
饮水桶_T11 小时前
JAVA IO流笔记
开发语言·数据结构·算法