从零开始的python爬虫教程(Day03)

简介

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。(来源于百度文库)

常用匹配规则

详细匹配规则请参考菜鸟教程

01 普通字符

在正则表达式里面写入普通字符,则可以直接匹配出来。

02 元字符

字符作用
\w匹配字母、数字、下划线
\W匹配非字母、非数字、非下划线
\s匹配空白字符
\S匹配非空白字符
\d匹配数字
\D匹配非数字
\A匹配字符串开头
\z匹配字符串结尾(包括换行)
\Z匹配字符串结尾(不包括换行)
\n匹配换行符
\t匹配制表符
^匹配字符串开头
$匹配字符串结尾
*匹配0个以上的任意字符
+匹配1个以上的任意字符

03 限定符

字符作用
[]匹配一组字符,匹配[]内的任意字符
()匹配括号内的表达式,或一个组
|a|b匹配a或b
{n}匹配n个前面的表达式
?匹配0-1个前面的表达式定义的片段
{m,n}匹配m-n个前面的表达式定义的片段

04 特殊字符

由于正则表达式里面的很多字符都有其独特的作用,故此,需要用一种方式来匹配这些有作用的字符。

就是在这些字符前面加上“\”。

这些字符包括:

特殊字符匹配方法
^\^
*\*
+\+
.\.
?\?
|\|
[]\[
{}\{
()\ ( \ )
\\\

05 修饰符

修饰符为正则表达式里面添加的标志,用于控制匹配模式。

修饰符作用
re.I匹配对大小写不敏感
re.M可以匹配多行
re.S使.可以匹配换行
re.U匹配Unicode解析字符

re库的部分方法

01 match

match会从字符串的头开始进行匹配,如果开头不匹配,则返回None。

sentence = "Hello! I'm 12218. ✧٩(ˊωˋ*)و✧"
text = re.match(r'^Hello.*?(\d+).*', sentence)
print(text)
print(text.group())
print(text.group(0)) # group()和group(0)作用一样,都是匹配到的全部字符串
print(text.group(1)) # group(1)是取匹配到的第一个字符串

02 search

search会从字符串的任意位置开始进行匹配,如果非发现匹配部分,则返回None。

text = re.search(r'ello.*?(\d+).*', sentence) # search会从字符串的任意位置开始进行匹配
print(text)
print(text.group())
print(text.group(0))
print(text.group(1))

03 findall

findall是从字符串里面寻找所有符合条件的匹配部分,匹配部分返回一个列表类型,如果非发现匹配部分,则返回空列表。

text = re.findall(r'\d', sentence) # findall是从字符串里面寻找所有符合条件的匹配部分
print(text)
print(type(text))

04 compile

compile的方法是用于将一个正则表达式编译成一个正则表达式对象,以便重复使用。

content = re.compile(r'.*?(\d+).*?') # 将一个正则表达式编译成一个正则表达式对象,可以更方便地使用
text = re.findall(content, sentence)
print(text)

代码下载

完整版代码请移步我的GitHub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值