文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python爬虫学习三:python正则

2023-01-31 00:58

关注

python爬虫学习三:python正则表达式


自己写的一个爬虫:https://github.com/qester/wordpres_Crawler


1、正则表达式基础


a、正则表达式的大致匹配过程:

1、依次拿出表达式和文本中的字符比较

2、如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。

3、如果表达式中有量词或边界,这个过程会稍微有些不同。


b、正则表达式语法学习(参考网页吧)


2、re模块


python通过模块提供正则表达式的支持。使用re的一般步骤是:

s1、先将正则表达式的字符串形式编译成Pattern实例;

s2、然后使用Pattern实例处理文本并获得匹配结果(一个Match实例);

s3、最后使用Match实例获取信息,进行其他操作。


a、Compile

 re.Compile(strPattern[,flag]):

 这个方法是Pattern类的工厂方法,用于将字符串形式的正则表达式编译为Pattern对象。

 flag参数是匹配模式,取值可以使用按位或运算符"|"表示同时生效,比如re.re.M.

 flag的可选值有:

re.I:忽略大小写

re.M:多行模式

re.S:点任意匹配模式

re.L:

re.U:

re.X:详细模式

b、Match

Match对象是一次匹配的结果,包含了很多关于此次匹配的信息,可以使用Match提供的可读

属性或方法来获取这些信息。


属性:

string:匹配时使用的文本。

re:匹配时使用的Pattern对象。

pos:文本中正则表达式开始搜索的索引。

endpoe:结束搜索的索引

lastindex:最后一个被捕获的分组在文本中的索引。如果没有被捕获的分组,将为None。

lastgroup:最后一个被捕获的分组的别名。如没有,则为None。


方法:

group([group1,....]):

获得一个或多个分组截获的字符串;指定多个参数时将以元组的形式返回。不写参数时返回group(0).

groups([default]):

以元组的形式返回全部分组截获的字符串。

groupdict([default]):

返回以有别名的组的别名为键、以该组截获的子串为值得字典,没有别名的组不包含在内。

start([group]):

返回指定的组截获的子串在string中的起始索引(子串第一个字符的索引)。

end([group]):

返回指定的组截获的子串在string中的结束索引(子串最后一个字符的索引+1)。

span([group]):

返回(stat(group),end(group))。

expand(template):

将匹配到的分组代入template中然后返回。


c、Pattern

Pattern对象是一个编译好的正则表达式,通过Pattern提供的一系列方法可以对文本进行匹配查找。

Pattern不能直接实例化,必须使用re.compile()进行构造,也就是re.compile()返回的对象。


Pattern提供了几个可读属性用于获取表达式的相关信息:

pattern:编译时用的表达式字符串

flags:编译时用的匹配模式,数字形式。

groups:表达式中分组的数量。

groupindex:以表达式中有别名的组的别名为键、以该组对应的编号为值,没有别的别名的组不包含在内。


3、一些Pattern的实例方法:


a、match方法:返回一个match对象

b、search方法:返回一个match对象

c、spilt方法:按照能够匹配的子串将string进行分割后返回列表。

d、findall方法:以列表返回全部能够匹配的子串。

e、finditer方法:返回一个顺序方位每一个匹配结果的迭代器。

f、sub方法:sub(repl,string):使用repl替换string的每一个匹配的子串后返回替换后的字符串。



阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯