栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python re findall search finditer complie 预加载

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python re findall search finditer complie 预加载

python re findall search finditer complie 预加载

几个主要的元数据,表示单个匹配
d #匹配数字
w #匹配字母,数字,下划线
D #/d的取反
W # /w的取反
[abc] #其中的任意字符
[^abc] #其中的任意字符取反
. #所有内容,贪婪匹配,除了换行

有前置数据,后置描述
? #0/1个

  •  #1个以上
    
  •   #任意多个
    

{n} #n个

特别说明:
“.*?” #不贪婪匹配,一般是将需要匹配的内容用这个替换就可以获取到匹配的内容

re.findall #返回的是列表
re.search #返回match对象,且只匹配到第一个,后面就不匹配了
re.finditer #返回一个可以迭代对象,迭代对象里面是match对象

import re

s = """
要实现自动化数据库断言?其实很easy
课程链接:https://ke.qq.com/webcourse/index.html#cid=315793&term_id=100374766&taid=7225051863441
详细内容:
1. selenium web自动化断言操作
2. 批量获取并存储网页信息数据
3. Java实现数据库连接与查询
4. 数据库与web自动化结果对比断言
"""
# result = re.findall("d+",s)     #匹配连在一起的数字;返回匹配的,然后放入到列表中
# result = re.search("w+",s)      #匹配第一次匹配的字符,数字,下划线的多个,遇到特需符号完成,返回match对象,只有1个
# result = re.finditer("D+",s)     #匹配为可迭代对象,每一个值为一个match对象


#如下为re的预加载功能,可以将上面的cid 和 term_id的值取出来
obj = re.compile(r'ke.qq.com/webcourse/index.html#cid=(?P.*?)&term_id=(?P.*?)&taid=7225051863441',)
# result = obj.findall(s)                #返回列表,但是时匹配的元素放入到一个元组中,然后再放入到了列表

# result = obj.search(s)                   #找到对应的命名的内容,并匹配 
# cid = result.group("cid")
# term_id =  result.group("term_id")
# print(cid,term_id)

result = obj.search(s)           #直接search到match的对象,直接用groupdict列出所有匹配的值
dict = result.groupdict()
print(dict)

# result = obj.finditer(s)               #使用finditer需要将迭代对象列出来,然后用match对象;那我用这个finditer的作用是什么呢?每次都要解包才能用?
# for i in result:
#     dict = i.groupdict()
#     print(dict)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1005092.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号