为了账号安全,请及时绑定邮箱和手机立即绑定

python正则表达式

难度初级
时长 1小时29分
学习人数
综合评分9.40
211人评价 查看评价
9.7 内容实用
9.4 简洁易懂
9.1 逻辑清晰
  • #-*- coding:UTF-8 -*- #使用Python实现简单的抓取网页图片 import re import urllib2 req = urllib2.urlopen('http://www.imooc.com/course/list') buf = req.read() listurl = re.findall(r'http:.+\.jpg', buf) i = 0 for url in listurl: f = open(str(i)+'.jpg','wb') req = urllib2.urlopen(url) buf = req.read() f.write(buf) i = i + 1 f.close()
    查看全部
  • 这里出现一个问题,按照代码来跑图片,都下载到本地了,但是打不开,明显文件损坏,但是把打开方式改为wb即可正常打开
    查看全部
  • 1、pa=re.compile(r"imooc",re.I)#若字符串中有大写,也匹配大写的,即忽略大小写。 I,大小写 2、ma.groups():返回一个组 3、也可以直接使用re.match(),直接生成一个pattern
    查看全部
  • 1、在文本中找到以imooc开头的语句: f=open("imooc.txt") for line in f: if line.startswith("imooc"): print line 或者构造成一个函数: def find_start_imooc(fname) f=open(fname) for line in f: if line.startswith("imooc"): print line find_start_imooc("imooc.txt")#调用该函数 2、找到imooc开头和结尾的语句。注意结尾要用切片。 def find_in_imooc(fname) f=open(fname) for line in f: if line.startswith("imooc") and line[:-1].endswith("imooc"): print line find_in_imooc("imooc.txt") 3、匹配一个下划线和字母开头的变量名 a="_value1" a and (a[0]=="_"or"a"<=a[0]<="z")#匹配 4、正则表达式概念 1.使用单个字符串来描述匹配一系列符合某个句法规则的字符串 2.是对字符串操作的一种逻辑公式 3.应用场景:处理文本和数据 4.正则表达式过程:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功;否则匹配失效。
    查看全部
    2 采集 收起 来源:正则简介

    2018-03-22

  • 正则表达式语法
    查看全部
  • . 匹配任意一个字符。 [abc] 匹配中括号内的任意一个字符 /d /D 匹配任意一个数字 匹配任意一个非数字 /s /S 匹配一个空格 匹配任意一个非空格 /w /W 匹配一个单词型(字母和数字) /W匹配一个非单词型
    查看全部
  • 爬取网站图片过程: import urllib2 //导入urllib2包 req=urllib2.urlopen('http://www.XXXX.com') //对网页发出请求 buf=req.read() //将网页内容读取到buf缓存中 import re urllist = re.findall(r'http:.+\.jpg',buf) //获取图片地址列表 i=0 for url in urllist: f=open(str(i)+'.jpg','w') //创建一个文件,命名为{str(i).jpg} ‘w’:采用写入方式,若无该文件则创建它 req = urllib2.urlopen(url) //请求该地址内容 buf = req.read() //读取请求信息 f.write(buf) //将buf内容写到文件f中 i+=1
    查看全部
  • ^ 匹配字符串的开头 $ 匹配字符串的结尾 | 匹配左右任意一个表达式 (ab) 括号中表达式作为一个分组 \<number> 引用编号为number的分组匹配到的字符串 (?P<name>) 分组起别名 (?P=name) 引用别名为name的分组匹配字符串
    查看全部
  • r'<([\w]+>)[\w]+</\1'    小括号中作为一个分组,中间的[\w]+表示匹配一个或多个数字字母 下划线

    <\表示HTML中的标签结尾,\1表示再次使用小括号中的匹配内容在匹配一次


    查看全部
  • Python 3 代码,获取图片不在是src开头,另外图片结尾有jpg和npg。特别是下载重命名时不能都命名为jpg格式。
    # get html 
    req = urllib.request.urlopen('https://www.imooc.com/course/list')
    buf_html = req.read().decode('utf-8')
    images_tmp = re.findall(r'data-original=.*(?:jpg|png)', buf_html)
    
    
    #get image url list
    img_urls = []
    for ins in images_tmp:
        t = re.split(r'//', ins)
        img_urls.append('http://' + t[1])
    
    i = 1
    for url in img_urls:
        fileName = open(str(i) + '.' + re.split(r'\.', url)[-1], 'wb')
        req1 = urllib.request.urlopen(url)
        buf_image = req1.read()
        fileName.write(buf_image)
        i += 1


    查看全部
  • #环境python3.7
    import re
    import urllib.request
    
    req=urllib.request.urlopen('https://www.imooc.com/course/list')#读取网站
    buf=req.read().decode('utf-8')#读取网站中的字符串
    listurl1=re.findall(r'//img.+\.jpg',buf)#找到匹配对象
    str1=' '.join(listurl1)#在前面添加https:
    subhttps=re.sub(r'//','https://',str1)
    sht=re.split(r' ',subhttps)
    #保存图片
    i=0
    for url in sht:
        f=open(str(i)+'.jpg','wb+')#打开一个文件(文件名,写入方式)若不存在就会创建,wb+才支持byte的写入
        req=urllib.request.urlopen(url)
        buf=req.read()
        f.write(buf)
        i+=1


    查看全部
  • 导入模块        import re

    生成Pattern   pa = re.compile(r'要查找的内容')

    生成Match    ma = pa.match(被查找的字符串)

    ma.group() #返回匹配字符串或元组

    ma.span() #返回匹配字符串的位置

    ma.string #返回被匹配字符串


    查看全部
  • | 匹配左右任意一个表达式

    (ab) 括号中表达式作为一个分组

    \<number> 引用编号为number的分组匹配到的字符串

    (?P<name>) 分组起别名

    (?P=name) 引用别名为name的分组匹配字符串


    查看全部
  • 多字符匹配

    re.match(r'[_a-zA-Z]+[_\w]*',"asfjl;ka ")

    +:前面的一个字符可以出现1次或无数次

    *:前面的一个字符可以出现0次或无数次

    以下划线或者字母开头(+号的作用),后面可以是下划线或者其他字符的字符串

    <br>

    ?:匹配前面的一个字符0次或者1次<br>

    [1-9]?[0-9] #09是可以被match上的 虽然只是返回一个0 奇怪。。

    {m} 匹配前一个字符m次

    {m,n} 匹配前一个字符m到n次

    *? +? ?? 指虽然可以匹配上但是不返回后面的


    查看全部
  • . 匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。<br>
    \d 匹配一个数字字符。等价于 [0-9]。<br>
    \D 匹配一个非数字字符。等价于 [^0-9]。<br>
    \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。<br>
    \S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。<br>
    \w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。<br>
    \W 匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。


    查看全部

举报

0/150
提交
取消
课程须知
本课程是Python中级课程 1、本课程在linux讲解,最好有linux开发环境 1、熟练掌握Python开发语言基础语法
老师告诉你能学到什么?
1.正则表达式基本语法 2.使用re模块处理文本

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!