作用:
表达对字符串数据的 匹配 过滤 提取的表达式(字符串)
概念:
用事先定义好的特定字符,或这些特定字符的组合,来对字符串进行匹配筛选
特点:
通用性很强,适用于很多编程语言
语法功能强大
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","python\norg",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\.org\w","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<分组名>正则)
引用(?P=name)
| (a|b|c) 匹配|左右任意一个表达式
match(正则,数据)->匹配对象 从头开始匹配
search(正则,数据)->匹配对象 从头开始搜索 直到数据搜索完成
findall (正则,数据)->列表 查找所有与正则表达式匹配的数据 以列表形式输出
sub (正则,替换数据,数据,次数)->替换后的数据
split (正则,数据)->切割后的列表
贪婪与懒惰(非贪婪)
默认贪婪 尽可能多
前提 满足整体的匹配结果
r字符
自动对数据的\进行转义
不添加r时
html = """ """ import re print(re.findall(r"https://.+?\.(?:jpg|png)",html))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。