小白学python(爬虫知识2(基础的正则表达式))

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。

正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。

常用操作符

. 任意单个字符

[  ]字符集,对单个字符给出取值范围
[^ ]非字符集,对单个字符给出排除范围
*前一个字符0或无限次扩展
+前一个字符1次或无限次扩展
?前一个字符0或1次扩展
|左右表达式任意一个

{m}扩展前一个字符m次
{m,n}扩展前一个字符m至n次
^匹配字符串开头    
$匹配字符串结尾
( )分组标记,内部只能用|操作
\d数字  等于【0-9】
\w 单词字符

正则可以包含一些可选标志修饰符来控制匹配的模式,多个用|来连接

re.l 使匹配对大小写不敏感
re.M 多行匹配

re库主要功能

re 模块的一般使用步骤如下:

使用 compile 函数将正则表达式的字符串形式编译为一个 Pattern 对象
通过 Pattern 对象提供的一系列方法对文本进行匹配查找,获得匹配结果(一个 Match 对象)
最后使用 Match 对象提供的属性和方法获得信息,根据需要进行其他的操作。

compile() 函数

compile 函数用于编译正则表达式,生成一个 Pattern 对象,它的一般使用形式如下:

re.compile(pattern[, flag])

其中,pattern 是一个字符串形式的正则表达式,flag 是一个可选参数,表示匹配模式,比如忽略大小写,多行模式等。
从compile()函数的定义中,可以看出返回的是一个匹配对象,它单独使用就没有任何意义,需要和findall(), search(), match()搭配使用。

findall()函数

compile()与findall()一起使用,返回一个列表。

有两种写法
1.
先定义模式,用 re.findall(模式,内容)

import re
pat = re.compile("A")
m = re.findall(pat,"AasdasAaA")
print(m)

先定义模式,用 模式.findall(内容)

import re
pat = re.compile("A")
m = pat.findall("AasdasAaA")
print(m)

结果为:
在这里插入图片描述
可见返回为一个列表。

match()函数

compile()与match()一起使用,可返回一个class、str、tuple。但是一定需要注意match(),从位置0开始匹配,匹配不到会返回None,返回None的时候就没有span/group属性了;
例如: match(‘p’,’python’)返回值为真;
match(‘p’,’www.python.org’)返回值为假。

用法同findall()

search()函数

re.search(pattern, string, flags=0)

compile()与search()搭配使用, 返回的类型与match()差不多, 但是不同的是search(), 可以不从位置0开始匹配。但是匹配一个单词之后,匹配和match()一样,匹配就会结束。

sub()函数

re.sub(pattern, repl, string, count=0, flags=0)

pattern:模式串
repl:需要替换成的字符串
string:需要被替换的字符串
count:替换次数

即在string中找到pattern用repl替换
*建议在正则中,被比较的字符串前面加上r,不用担心转义字符的问题

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mcl19909949541

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值