Python爬虫学习-第一节正则表达式

正则表达式是学习网络爬虫非常重要的基础。   

这个基础没打扎实,寸步难行,通过以下几步可以深刻理解python正则表达式.每一步都不能错过

如果您能耐心看完,那么你讲很容易理解正则表达式。 ?

在文章得最后,还会通过几个实例加深理解。

1、懂得正则表达式模块引入

      import re 引入正则表达式模块

2、原子概念

    可以说是正在表达式得最小单位必须理解透彻。

    分4类:a、普通字符原子 如:数字、字母、下划线等

                 b、非打印字符原子 如:\n  、\t    对应换行、Tab

                 c、通用字符原子(很重要) 如:\w 表示任意一个字母、数字、下划线;\s一个空白字符;\d 任一个十进制

                                              对应大写相反意思,\W表示任意一个 非字母、数字、下划线;\S一个非空白字符,不包括换行符;

                 d、原子表 如:pat="pyth[org]n"  [org]就是一个原子表,[org]=o r g三个字母中的一个。只能是其中一个。

3、元字符

     写字符筛选规则经常用到的符号,平时看不懂得Python符号也在这里。

  . 表示匹配任意一个字符,除了换行符

  ^匹配字符串开始的位置    ;  $匹配字符串结束的位置

  * 匹配多次     如 :“s*”=“sssss……”

  ?匹配一次或零次  如:“s?”=“ss”或“s”

  + 匹配一次或多次   如:“s+”="s"或“sssss”

 {}限制出现次数  如 "t{3}" =“ttt”;

                                     "t{3,}"表示至少出现3次 ; “t{3,7}”表示出现次数3-7次之间

   |  表示或 ,如 [.com|.cn]='.com' 或 '.cn'

4、模式修正符

      这个其实是正则函数中的一个参数。   说几个常见的

         re.i 匹配时不在乎大小写 ;re.M多行匹配,不局限一行 ;re.S 让\S包括换行符,原来表示非空字符。

5、贪婪模式和懒惰模式

      贪婪就是尽可能多匹配,懒惰尽可能少匹配。

      后面会举例说明。

5、正则表达式函数

     终于到这一步了。常用的就3个。待会会通过实例比较三个函数区别

     A、re.search(pat,string,模式修正符)  匹配整个String,看是否有符合pat规则,模式修正符可有可无。

     B、re.match(pat,string,模式修正符)   和search函数区别,match必须从String第一个字符开始匹配,是否有符合Pat规则的字符。

     C、上面2个函数只匹配出一个符合Pat规则的字符串,下面函数会匹配所有符合Pat规则的字符串.

          re.compile(pat).findall(string)

 

6、各种实例实验

  Pat表示匹配的规则

 String表示在这个里面匹配

   实验一、贪婪、懒惰模式匹配区别   

   pat1贪婪模式  (.*) , pat2懒惰模式  (.*?)

     贪婪模式:     结果:

 

   懒惰模式:   结果:    

  注: 结果中span表示成功匹配范围 字符串下标表示,match表示比配到的字符串

 

实验二、编写一个爬网页上网址的规则

网页的规则有很多种,我只写一种简单的。 如果看不懂,请用心看前面的基础概念

pat="[a-zA-Z]+://[\S]+[.com|.cn]"

 分步解析:[a-zA-Z]+ :表示字母出现一次或多次,[\S]+:表示非空字符出现一次或多次 ,[.com|.cn]:.com或.cn中的一种 

 

  结果:   

 

若有错误还请在评论区留言。 每天努力一点点 ?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值