Python正则函数怎么使用
发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,这篇文章主要介绍"Python正则函数怎么使用",在日常操作中,相信很多人在Python正则函数怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Python正则函
千家信息网最后更新 2025年11月12日Python正则函数怎么使用
这篇文章主要介绍"Python正则函数怎么使用",在日常操作中,相信很多人在Python正则函数怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Python正则函数怎么使用"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
1. 反向引用_命名分组
# ### 反向引用import restrvar = "明天又要休息了"obj = re.search("<(.*?)>(.*?)<(.*?)>",strvar)print(obj)# 获取匹配到的内容res1 = obj.group()print(res1)# 获取分组里的内容res2 = obj.groups()print(res2)# 反向引用的语法 \1把第一个括号里面匹配到的内容在引用一次obj = re.search(r"<(.*?)>(.*?)\1>",strvar)print(obj)print(obj.group())print(obj.groups())strvar = " z3d4pzd a1b2cab "obj = re.search(r"(.*?)\d(.*?)\d(.*?)\1\2",strvar)print(obj)print(obj.group())print(obj.groups())# ### 命名分组"""3) (?P<组名>正则表达式) 给这个组起一个名字4) (?P=组名) 引用之前组的名字,把该组名匹配到的内容放到当前位置"""# 写法一strvar = " z3d4pzd a1b2cab "obj = re.search(r"(?P.*?)\d(?P .*?)\d(?P .*?)\1\2",strvar)print(obj)print(obj.group())# 写法二strvar = " z3d4pzd a1b2cab "obj = re.search(r"(?P .*?)\d(?P .*?)\d(?P .*?)(?P=tag1)(?P=tag2)",strvar)print(obj)print(obj.group())
2. 正则函数
# ### 正则函数import re# search 通过正则匹配出第一个对象返回,通过group取出对象中的值strvar = "3+4 6*4"obj = re.search(r"(\d+[+*]\d+)",strvar)print(obj)# 获取匹配到的内容print(obj.group())# 获取分组当中的内容 (返回元组)print(obj.groups())# match 验证用户输入内容 (了解)"""search在正则表达式的前面加上^ 等价于 match ,其他用法上一模一样"""strvar = "a17366668888"strvar = "17366668888"# obj = re.search(r"^\d+",strvar)# obj = re.match(r"\d+",strvar)# print(obj.group())print(obj)# split 切割strvar = "alex|wusir_xboyww@risky"lst = re.split("[|_@]",strvar)print(lst)strvar = "alex2341273894wusir234234xboyww11111risky"lst = re.split("\d+",strvar)print(lst)# sub 替换 strvar = "alex|wusir_xboyww@risky""""strvar = strvar.replace("|","&")strvar = strvar.replace("_","&")strvar = strvar.replace("@","&")print(strvar)"""# sub(正则,替换的字符,原字符串[,替换的次数])res = re.sub("[|_@]","&",strvar)res = re.sub("[|_@]","&",strvar,1)print(res)# subn 替换 (用法上与sub相同,只是返回值不同)res = re.subn("[|_@]","&",strvar)res = re.subn("[|_@]","&",strvar,2)print(res) # res = re.sub("[|_@]","&",strvar)# ('alex&wusir&xboyww@risky', 2)# finditer 匹配字符串中相应内容,返回迭代器"""返回的是迭代器,迭代器中包含了对象 对象.group来获取匹配到的值"""from collections import Iterator, Iterablestrvar = "sdf23647fdgdfg()*()*23423423"it = re.finditer("\d+",strvar)print(isinstance(it,Iterator))for obj in it: print(obj.group())# compile 指定一个统一的匹配规则"""正常情况下,正则表达式编译一次,执行一次为了避免反复编译,节省时间空间,可以使用compile统一规则编译一次,终身受益"""strvar = "asdfs234sdf234"pattern = re.compile("\d+")print("<===>")obj = pattern.search(strvar)print(obj.group())lst = pattern.findall(strvar)print(lst)# 修饰符 # re.I 使匹配对大小写不敏感strvar = "大标题"pattern = re.compile("(.*?)
" , flags=re.I)obj = pattern.search(strvar)print(obj.group())# re.M 使每一行都能够单独匹配(多行匹配),影响 ^ 和 $"""单行独立匹配,而不是整体匹配"""strvar = """
111
222333"""pattern = re.compile("^<.*?>(?:.*?)<.*?>$" , flags=re.M)lst = pattern.findall(strvar)print(lst)# re.S 使 . 匹配包括换行在内的所有字符strvar = """givesdfsdfmefive"""# 多个修饰符一起使用通过|拼接pattern = re.compile(".*?mefive" , flags = re.S|re.I|re.M )obj = pattern.search(strvar)print(obj.group())小提示:
爬虫爬数据的时候用finditer,数据太大,用迭代器存strvar = """111
222333"""pattern = re.compile("^<.*?>(?:.*?)<.*?>$")lst = pattern.findall(strvar)print(lst) # 这里的结果为[] 因为.不匹配换行符,所以不会返回结果pattern = re.compile("^<.*?>(?:.*?)<.*?>$",flags=re.M) 这里就是一行的一行的匹配了不会用for i in找思路 不会用.*?找思路
到此,关于"Python正则函数怎么使用"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
正则
内容
函数
字符
对象
分组
学习
迭代
一行
表达式
编译
写法
名字
字符串
思路
数据
更多
结果
规则
法上
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发新产品时有哪些
怎么查看数据库的创建语句
锐捷隔离服务器外网
工业能耗数据库
服务器网络有问题还能登录上去吗
淘宝数据库如何做
禁断邪语短剑60数据库
光伏网络技术
服务器映射打印机
央视新闻关于网络安全审查办法
广州阿尔法网络技术
服务器删除数据可以恢复吗
服务器连接超时什么意思
新华互联网科技大赛视频
一万人同时游戏在线的服务器
qt向数据库中插入blog
广州市纽约互联网科技
河北卡友软件开发有限公司
2019网络安全公司
json联动数据库
服务器安装操作系统后怎么启动
哔哩哔哩7月13日服务器崩坏
用服务器登录微信会封号吗
数据库宏组里面创建两个宏
王者服务器修复了吗
物种智能数据库招标
网络安全风险隐患排查整治
未知的服务器异常
如何看连接的是不是同一个服务器
扩展器无法连接服务器