python3爬虫——正则表达式re详解(1)

(一)什么是正则表达式
还早呢过这表达式是对字符串操作的一种逻辑公式,就是用实现定义好的一些特定的字符,及这些特定的字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑
ps:正则表达式非python独有,使用re模块即可实现
(二)案例

re.match

语法格式:re.match(pattern,string,flag=0)

最常规的匹配:

最常规的匹配,表示匹配的结果为最原始的,中规中矩的匹配出结果
代码展示:

import re

content = 'Hello 123 4567 World_This is a Regex Demo'
print(len(content))
result = re.match('^Hello\s\d\d\d\s\d{4}\s\w{10}.*Demo$', content)
print(result)
print(result.group())
print(result.span())

知识点:
(1).group()表示的是返回正则匹配的结果
(2).span()表示返回正则匹配的范围

泛匹配

泛匹配,表示将正则匹配的字符缩短,但得到的是何上方一样的
结果

代码展示:

import re

content = 'Hello 123 4567 World_This is a Regex Demo'
result = re.match('^Hello.*Demo$', content)
print(result)
print(result.group())
print(result.span())

知识点:
(1) .* 可以匹配出除去换行以外的任意字符

匹配目标

匹配目标就是将需要的字符匹配出来

代码展示:

import re

content = 'Hello 1234567 World_This is a Regex Demo'
result = re.match('^Hello\s(\d+)\sWorld.*Demo$', content)
print(result)
print(result.group(1))
print(result.span())

知识点:
(1)()匹配括号内的表达式,也表示一个组
(2)+ 匹配1个或多个的表达式
* 匹配0个或多个的表达式
(3).group(1)—输出第一个带有()的目标

贪婪匹配

在贪婪匹配中匹配出来的结果有可能不是我们想要的结果

import re

content = 'Hello 1234567 World_This is a Regex Demo'
result = re.match('^He.*(\d+).*Demo$', content)
print(result)
print(result.group(1))

非贪婪匹配

代码展示:

import re

content = 'Hello 1234567 World_This is a Regex Demo'
result = re.match('^He.*?(\d+).*Demo$', content)
print(result)
print(result.group(1))

知识点: 匹配0个或1个由前面的正则表达式定义的片段,为非贪婪方式,匹配尽可能少的字符

匹配模式

当出现换行的时候,.*?*是不适用的,这时
我们需要使用re.s来实现,这样.*就可以代表换行了

代码展示:

import re

content = '''Hello 1234567 World_This
is a Regex Demo
'''
result = re.match('^He.*?(\d+).*?Demo$', content, re.S)
print(result.group(1))

转义

当有些转移字符出现在字符串中,需要使用’\’来消除他的另外一种含义

代码展示:

import re

content = 'price is $5.00'
result = re.match('price is \$5\.00', content)
print(result)

ps:以上均为学习崔庆才python3爬虫的学习笔记

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值