Python正则函数怎么使用
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍"Python正则函数怎么使用",在日常操作中,相信很多人在Python正则函数怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Python正则函
千家信息网最后更新 2026年11月03日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安全错误
数据库的锁怎样保障安全
瑰夏咖啡
保险科技 互联网保险
科技与互联网
科技与互联网发展
互联网科技排名
贷财互联网科技
青海省互联网新科技
青岛中康互联网医疗科技有限公司
中国科技互联网公司收入
互联网科技有哪些公司
互联网软件和科技
浙江互联网科技研学营
青海科技产业互联网发展
华夏恒生科技与互联网科技
区块链结合互联网科技
广州燕处互联网科技有限公司
互联网科技博主张洲
亚光科技低轨卫星互联网
东风日产互联网科技公司叫什么
宁波允成互联网科技有限公司
百单网互联网科技有限公司怎么样
与互联网科技公司
礼当家互联网科技
互联网金融 科技创新
互联网科技寓意
上海宁丞科技互联网
996高科技互联网公司
畅思互联网科技
互联网科技实习生岗位
湖北辰鑫科技互联网