爬虫 之 re 解析 语法

这里针对  贪婪 和 非贪婪 模式  对数据解析

对re不熟悉的可以看看我前面发的re正则

  •  .*  : 贪婪 模式 一直匹配下去 
     .*? : 加 ?号 是 非贪婪 模式  
     (.*?):分组 ,匹配给定的内容,拿到数据
    
    

代码解析

import re


#从开头找
print(re.match("a*", "aaaaab").group())

#非贪婪 加 ?号就是非贪婪
print(re.match("a*?", "aaaaab").group())

str1 = '<meta http-equiv="content-type" content="text/html;charset=utf-8"/>adacc/sd/sdef/24'
result = re.findall(r'<.*>', str1)
print(result)

#查找所有匹配的数据
print(re.findall("\d", "aef5teacher2"))
#替换
print(re.sub("\d", "_", "aef5teacher2"))

#编译
p = re.compile("\d", re.S)
print(p.findall("aef_t5eac5her"))





#re.match(): 从头开始匹配,匹配的规则必须是从字符串开头开始定义规则
str1 = '<meta http-equiv="content-type" content="text/html;charset=utf8"/>adacc/sd/sdef/24'
"""需求:提取content-type"""
# .*?: 匹配任意字符无限次(除去\n),不用去关注数据的长度
result = re.match('<meta http-equiv="(.*?)"', str1)
print(result.group())
print(result.groups())

"""需求:提取utf-8"""
result = re.match('<meta http-equiv="content-type" content="text/html;charset=(.*?)"', str1)
print(result.groups())

# str1 = '<meta http-equiv="content-type" http-equiv="content1-type"content="text/html;charset=utf-8"/>adacc/sd/sdef/24'
# # re.search(): 找到一个匹配结果就返回,匹配的结果:没有 or 有且只有一个
# # 规则可以从任意位置开始
"""需求:提取http-equiv属性值"""
result = re.search('http-equiv="(.*?)"', str1)
print(result.groups())
str1 = '<meta http-equiv="content-type" http-equiv="content1-type"content="text/html";charset="utf-8"/>adacc/sd/sdef/24'

# re.findall(): 将符合规则结果全部返回
# 没有符合正则规则,返回的结果是一个空列表

"""需求:提取http-equiv属性值"""
result = re.findall('http-equiv="(.*?)"', str1)
print(result)
result = re.findall('="(.*?)"', str1)
print(result)

"""
 .*  : 贪婪 模式 一直匹配下去 
 .*? : 加 ?号 是 非贪婪 模式  
 (.*?):分组 ,匹配给定的内容,拿到数据
"""

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值