zoukankan      html  css  js  c++  java
  • 第60讲:一只爬虫的自我修养8——正则表达式

    一 search方法:

    1 模块级别的search方法:re.search(pattern,string,flags=0)

    • pattern : 正则中的模式字符串。
    • string : 要被查找替换的原始字符串。
    • flags : 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

    2 编译后的正则表达式模式对象也拥有search方法:regex.search(string[,pos[,endpos]])

    • string: 要被查找替换的原始字符串。
    • pos:表示需要搜素的起始位置
    • endpos:表示需要搜索的结束位置

    注意:search方法并不会立刻返回你可以使用的字符串取而代之,而是返回一个匹配对象

    3 匹配对象有一些方法,使用方法才可以获得一些你需要的字符串

    • group()方法:如果正则表达式中存在子组,那么会将匹配的内容进行捕获;通过在group中设置序号,可以提取到对应的子组捕获的字符串
       1 >>> import re
       2 >>> result = re.search(r" (w+) (w+)","I love FishC.com!")
       3 >>> result
       4 <re.Match object; span=(1, 12), match=' love FishC'>
       5 >>> result.group()
       6 ' love FishC'
       7 >>> result.group(1)
       8 'love'
       9 >>> result.group(2)
      10 'FishC'
      11 >>> result.group(3)
      12 Traceback (most recent call last):
      13   File "<stdin>", line 1, in <module>
      14 IndexError: no such group
      • w表示匹配任意字符,+号表示匹配一次或者多次
    • start()方法:匹配的开始位置
    • end()方法:匹配的结束位置
    • span()方法:表示范围
      • 1 >>> result.start()
        2 1
        3 >>> result.end()
        4 12
        5 >>> result.span()
        6 (1, 12)

     二 findall方法

    1 功能:

    正则表达式里面没有子组:找到所有匹配的内容,并把他们组织成列表的形式返回

    正则表达式里面有子组:findall方法会把正则表达式的匹配结果进行分类,并将结果以元组的形式返回——解决办法:让子组不捕获内容

    代码一直没办法用,不知道怎么改

  • 相关阅读:
    什么是高可用性(High Availability)?
    Programer's Tools
    dotnetcore 站点搭建实践
    Nginx使用总结
    小程序开发工具一直登陆不上,提示网络失败
    前端页面JS和CSS以及图片加载nginx报错:net::ERR_CONTENT_LENGTH_MISMATCH的解决与检查
    angualrjs添加ngTouch
    H5自定义金额键盘,改良后ios体验效果流畅
    js生成带有logo的二维码并保存成图片下载
    模仿input闪烁光标
  • 原文地址:https://www.cnblogs.com/luoxun/p/13961653.html
Copyright © 2011-2022 走看看