美文网首页
Python中的正则表达式

Python中的正则表达式

作者: oceanLong | 来源:发表于2017-09-10 17:46 被阅读11次

    前言

    正则表达式作为一种字符串匹配逻辑,在此不做赘述。本文的重点,并不是正则表达式,而是在Python中使用正则表达式。

    Re模块

    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])
    

    举个例子

    # -*- 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!')
    

    其中,只有result3会为false。

    举个大例子

    要求

    获取糗事百科首页的所有jpg图片的url

    code

    import urllib2
    import re
    
    # create header
    page = 1
    url = 'http://www.qiushibaike.com/hot/page/' + str(page)
    user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
    headers = { 'User-Agent' : user_agent }
    # get original page
    request = urllib2.Request(url,headers = headers)
    response = urllib2.urlopen(request).read()
    # complie image and jpg tag
    pattern = re.compile(r'<img\ssrc="//[^\s]*.jpg')
    # find all out
    result = re.findall(pattern, response)
    # print result
    if result:
        for r in result:
            index = len(r)
            print r[12:index]
    
    else:
        print 'match none'
    
    
    

    相关文章

      网友评论

          本文标题:Python中的正则表达式

          本文链接:https://www.haomeiwen.com/subject/yqhzjxtx.html