正则表达式
作用: 表达对字符串数据的 匹配 过滤 提取的表达式(字符串) 概念: 用事先定义好的特定字符,或这些特定字符的组合,来对字符串进行匹配筛选 特点: 通用性很强,适用于很多编程语言 语法功能强大 re模块: 是操作正则表达式的模块 # 导入re模块 import re # 使用match方法进行匹配操作 result = re.match(正则表达式,要匹配的字符串) # 如果上一步匹配到数据的话,可以使用group方法来提取数据 result.group() import re # 正则表达式前面全部都加上r 没毛病 result = re.match(r"itcast","itcast.cn") result.group() print(result.group()) 输出:itcast 匹配单个字符 . ?匹配任意一个字符 除了 n ? 可以通过r.S模式让 . 匹配n ?.==数据. re.match(r"python.org","pythonnorg",re.S).group() [] 匹配[]中列举的字符 ? [-]表示范围 ?[0-9] ?,[^0-9]表示取反 d 匹配数字 即0-9 D 匹配非数字 即不是数字 s 匹配空白 即 空格、tab键等等 S 匹配非空白 w 匹配非特殊字符 即 a-z 、A-Z、 0-9、 _、汉字 python3中可以匹配汉字 re.match(r"python.orgw","python.org?").group() # py3默认为unicode模式 可以匹配i汉字 W 匹配特殊字符 ?即非字母、非数字、非汉字 #coding=utf-8 import re ret = re.match(".","M") print(ret.group()) ret = re.match("t.o","too") print(ret.group()) ret = re.match("t.o","two") print(ret.group()) 运行结果: M too two 匹配开头和结尾 ^匹配字符串开头 $匹配字符串结尾 [^指定字符]: 表示除了指定字符都匹配 量词 {m,n} 匹配 至少m次 至多n次 ? {1,} {0,} {m} 匹配 m次 * 匹配任意次 + 匹配至少一次 ? 匹配0或者1次 匹配分组 目的:提取部分数据 匿名分组 创建 (正则) 获取.group(分组编号) 0分组存储整体结果 用户分组从1开始 引用 编号 命名分组 创建(?P<分组名>正则) 获取.group(分组名称) 引用(?P=name) | (a|b|c) 匹配|左右任意一个表达式 函数 match(正则,数据)->匹配对象 从头开始匹配 search(正则,数据)->匹配对象 从头开始搜索 直到数据搜索完成 findall (正则,数据)->列表 查找所有与正则表达式匹配的数据 以列表形式输出 sub (正则,替换数据,数据,次数)->替换后的数据 split (正则,数据)->切割后的列表 贪婪与懒惰(非贪婪) 默认贪婪 尽可能多 前提 满足整体的匹配结果 r字符? 自动对数据的进行转义 不添加r时 html = """ """ import re print(re.findall(r"https://.+?.(?:jpg|png)",html)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |