Python爬虫之正则表达式

首先我们要明白正则表达式是什么,用来作什么

正则表达式是一个特殊的符号序列,他帮助开发人员检查是否与某种模式匹配。

正则表达式常用的符号

一般字符

说明:

"."字符为匹配单个字符。例如,a.b可以的匹配结果为abc,aic,a&c等等,但不包括换行符

"\"字符为转义字符,例如“\n”。

"[...]"为字符集,相当于在中括号中任选一个。例如a[bcd],匹配的结果为ab,ac,ad。

预定义字符集

说明:

正则表达式中预定义字符集易于理解,在爬虫实战中,通常会匹配数字而过滤文字部分的信息。例如“数字3450”,只需要数字信息,通过“\d+”来匹配数据,“+”为数量词,匹配前一个字符1或无限次,这样便可以匹配到所有的数字。

数量词

例子:

"*":ab*c 匹配ac abc abbc abbbc等等

“+“: ab+c匹配abc abbc abbbc 等等

“?” :ab?c 匹配 ac abc

"{m}":ab{3}c匹配abbbc

"{m,n}":ab{1,3}c 匹配abc abbc abbbc

边界匹配

例子:

"^": ^abc匹配abc开头的字符串

"$":abc$匹配abc结尾的字符串

 

 在爬虫实战中常用的(.*?)"()"表示括号的内容作为返回结果,".*?"是非贪心算法,匹配任意的字符。

 

import re
a="xxIxxxxlivexxxxstudyxx"
info=re.findall('xx(.*?)xx',a)
print(info)

re模块及其方法

search()函数

匹配并提取第一个符合规律的内容,返回一个正则表达式对象。

import re
b="one1,tow2three3"
info1=re.search("\d+",b).group()
print(info1)

 

sub函数

用于替换字符串中的匹配项

import re
phone="123-456-789"
new_phone=re.sub('\D','',phone)
print(new_phone)

 

findall()函数

匹配所有符合规律的内容,并以列表的形式返回结果。

import re
a="xxIxxxxlivexxxxstudyxx"
info=re.findall('xx(.*?)xx',a)
print(info)

 

re模块修饰符

欢迎进群交流

                                                    

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值