python3爬虫入门之正则表达式

本文对正则表达式进行简单的讲解,对于毫无爬虫基础的同学可以5分钟入门。

首先,导入爬虫所需要的re库。

import re
.的使用:

#点号表示占位符
a='xz123'
b=re.findall('x.',a)
c=re.findall('x..',a)
print(b)
print(c)
['xz']
['xz1']
*的使用:

#*号匹配前一个字符0次或无限次
a='xyxy123'
b=re.findall('x*',a)
print(b)
['x', '', 'x', '', '', '', '', '']
?的使用:

#?号匹配前一个字符0次或1次
a='xz123'
b=re.findall('x?',a)
print(b)
['x', '', '', '', '', '']
.*的使用:

secret_code='hadkfalifexxIxxhfkfkjhjkh134xxlovexx4543367dsaxxyouxx8gffj'
b=re.findall('xx.*xx',secret_code)
print('b',b)
c=re.findall('xx.*?xx',secret_code)
print('c',c)
b ['xxIxxhfkfkjhjkh134xxlovexx4543367dsaxxyouxx']
c ['xxIxx', 'xxlovexx', 'xxyouxx']
括号的使用:

b=re.findall('xx(.*?)xx',secret_code)
print(b)
for each in b:
    print(each)
['I', 'love', 'you']
I
love
you
跨行取词:

s='''sddfdxxhello
xxhjgjxxworldxxasd'''
b=re.findall('xx(.*?)xx',s)
print('b',b)
c=re.findall('xx(.*?)xx',s,re.S)
print('c',c)
b ['hjgj']
c ['hello\n', 'world']

对比findall与search的区别

s='sdaxxIxx123xxlovexxjhk'
b=re.search('xx(.*?)xx123xx(.*?)xx',s).group(2)#group里的数字小于等于正则表达式中括号数
print('b',b)
c=re.findall('xx(.*?)xx123xx(.*?)xx',s)
print('c',c)
print(type(c))
print(c[0][1])
b love
c [('I', 'love')]
<class 'list'>
love
sub的使用(自动翻页中常用):

s='123ghjjsnak123'
b=re.sub('123(.*?)123','789',s)
print(b)
789
纯数字匹配利器:

a='ashgaj47865432578jhbkj657576hkj'
b=re.findall('(\d+)',a)
print(b)
['47865432578', '657576']
爬虫中需要用到的基本正则表达式就全部介绍完了。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值