Python爬虫笔记之re查找


前言

记录利用re查找元素的常用方法。

操作符

  • . :任意单个字符
  • *:前一字符扩展0到∞次
  • +:前一字符扩展1到∞次
  • ?:前一字符扩展0或1次
  • {m}:前一字符扩展m次
  • {m,n}:前一字符扩展m到n次
  • ^:在开头
  • $:在结尾
  • \d:[0-9]
  • \w:[A-Z a-z 0-9]
  • [ ] :字符集
  • ( ):分组
  • |:左右任一个
  • [^]:非字符集
    实例:
^[a-z A-z]+$ 由字母组成
^[0-9]+$ 由数字组成
^-?\d+$ 整数
[\u4e00-\u9fa] 中文字符
(25[0-5])|(2[0-4]\d)|(1\d{2})|([1-9]?\d) 0~255,由大到小分段

查找方法

re.search(pattern,string,flags=0) #返回第一个查找结果(match对象)
re.match(pattern,string,flags=0) #从头匹配,返回第一个查找结果(match对象)
re.findall(pattern,string,flags=0) #以列表类型返回全部结果
re.split(pattern,string,maxsplit,flags=0) #分隔,返回列表
re.finditer(pattern,string,flags=0) #返回迭代的match对象
re.sub(pattern,repl,string,count=0,flags=0) #替换,返回替换后的字符串
#pattern:正则表达式,r"text"
#string:待匹配字符串
#flag:re.I忽略大小写,re.M:把^当作匹配开始,re.S:操作符能匹配所有字符。
#maxsplit:最大分隔数,其余按一个返回
#repl:替换的字符串,count:替换次数

使用方法

一次操作:
rst=re.search(...)
多次操作:
pat=re.compile(pattern,flags)
rst=pat.search(...)
  • 贪婪匹配:默认,输出最长查找结果
  • 最小匹配:*?、+?、 ??、{m,n}?

match对象

属性:

  • match.string:待匹配文本
  • match.re:正则表达式
  • match.pos:起始位置
  • match.endpos:结束位置
    方法:
  • match.group(0):找到的字符串
  • match.start():在原字符串起始位置
  • match.end():在原字符串结束位置
  • match.span():(start,end)

使用

在这里插入图片描述

re.findall(r"语言.+",r.text)
>>>['语言程序设计</span></b></p>\r']

re.search(r"lang=..-..",r.text).group(0)
>>>'lang=ZH-CN'

print(re.match(r"lang=..-..",r.text))
>>>None

总结

使用re查找元素可以简单快速地查找特征元素,但当元素的特征性不强时,查找的效果较差,需要配合其他查找方式使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值