最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Re如何支持python爬虫的正则表达式?

    正文概述    2020-05-02   275

    学了python的小伙伴,应该听说过正则表达式。没有听过也不要紧。之前我们有过基础的介绍,不明白的可以去翻看一下。同样熟悉的还有字符串,这个是最最基础的知识点啦,相信大家都会。re后缀的模块有很多,所以小编是经过筛选才分享出来的。两者结合一起使用小编提出疑问,Re模块中怎样实现python爬虫的正则表达式呢?带着这个问题,开始我们今天的学习吧。


    Python 自带了 re 模块,它提供了对正则表达式的支持。主要用到的方法列举如下

    #返回pattern对象
    re.compile(string[,flag])  
    #以下为匹配所用函数
    re.match(pattern, string[, flags])
    re.search(pattern, string[, flags])
    re.split(pattern, string[, maxsplit])
    re.findall(pattern, string[, flags])
    re.finditer(pattern, string[, flags])
    re.sub(pattern, repl, string[, count])
    re.subn(pattern, repl, string[, count])


    本篇文章以两个最常用的方法进行举例介绍

    1.re.match(pattern, string[, flags])

    这个方法将会从 string(我们要匹配的字符串)的开头开始,尝试匹配 pattern,一直向后匹配,如果遇到无法匹配的字符,立即返回 None,如果匹配未结束已经到达 string 的末尾,也会返回 None。两个结果均表示匹配失败,否则匹配 pattern 成功,同时匹配终止,不再对 string 向后匹配。下面我们通过一个例子理解一下

    __author__ = 'CQC'
    # -*- coding: utf-8 -*-
     
    #导入re模块
    import re
     
    # 将正则表达式编译成Pattern对象,注意hello前面的r的意思是“原生字符串”
    pattern = re.compile(r'hello')
     
    # 使用re.match匹配文本,获得匹配结果,无法匹配时将返回None
    result1 = re.match(pattern,'hello')
    result2 = re.match(pattern,'helloo CQC!')
    result3 = re.match(pattern,'helo CQC!')
    result4 = re.match(pattern,'hello CQC!')
     
    #如果1匹配成功
    if result1:
        # 使用Match获得分组信息
        print result1.group()
    else:
        print '1匹配失败!'
     
     
    #如果2匹配成功
    if result2:
        # 使用Match获得分组信息
        print result2.group()
    else:
        print '2匹配失败!'
     
     
    #如果3匹配成功
    if result3:
        # 使用Match获得分组信息
        print result3.group()
    else:
        print '3匹配失败!'
     
    #如果4匹配成功
    if result4:
        # 使用Match获得分组信息
        print result4.group()
    else:
    print '4匹配失败!'

    运行结果

    hello
    hello
    3匹配失败!
    Hello

     

    2.re.search(pattern, string[, flags])

    search 方法与 match 方法极其类似,区别在于 match () 函数只检测 re 是不是在 string 的开始位置匹配,search () 会扫描整个 string 查找匹配,match()只有在 0 位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match () 就返回 None。同样,search 方法的返回对象同样 match () 返回对象的方法和属性。我们用一个例子感受一下

    #导入re模块
    import re
     
    # 将正则表达式编译成Pattern对象
    pattern = re.compile(r'world')
    # 使用search()查找匹配的子串,不存在能匹配的子串时将返回None
    # 这个例子中使用match()无法成功匹配
    match = re.search(pattern,'hello world!')
    if match:
        # 使用Match获得分组信息
        print match.group()
    ### 输出 ###
    # world


    以上就是Re支持python爬虫正则表达式的两种常见方式。小编在搜集资料的时候,还看到不过其他re模块的一些知识点,篇幅有限就没有分享出来,勤学好问的宝宝们肯定已经自己行动起来啦~更多Python学习推荐:起源地模板网教学中心


    起源地下载网 » Re如何支持python爬虫的正则表达式?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元