下载APP
登录
关闭
讲堂
算法训练营
Python 进阶训练营
企业服务
极客商城
客户端下载
兑换中心
渠道合作
推荐作者
当前播放: 45 | 正则表达式库函数match与search的区别
00:00 / 00:00
标清
  • 标清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看

零基础学Python

共71讲 · 71课时·约540分钟
16024
免费
01 | Python语言的特点
免费
02 | Python的发展历史与版本
免费
03 | Python的安装
免费
04 | Python程序的书写规则
免费
05 | 基础数据类型
免费
06 | 变量的定义和常用操作
07 | 序列的概念
08 | 字符串的定义和使用
09 | 字符串的常用操作
10 | 元组的定义和常用操作
11 | 列表的定义和常用操作
12 | 条件语句
13 | for循环
14 | while循环
15 | for循环语句中的if嵌套
16 | while循环语句中的if嵌套
17 | 字典的定义和常用操作
18 | 列表推导式与字典推导式
19 | 文件的内建函数
20 | 文件的常用操作
21 | 异常的检测和处理
22 | 函数的定义和常用操作
23 | 函数的可变长参数
24 | 函数的变量作用域
25 | 函数的迭代器与生成器
26 | Lambda表达式
27 | Python内建函数
28 | 闭包的定义
29 | 闭包的使用
30 | 装饰器的定义
31 | 装饰器的使用
32 | 自定义上下文管理器
33 | 模块的定义
34 | PEP8编码规范
35 | 类与实例
36 | 如何增加类的属性和方法
37 | 类的继承
38 | 类的使用-自定义with语句
39 | 多线程编程的定义
40 | 经典的生产者和消费者问题
41 | Python标准库的定义
42 | 正则表达式库re
43 | 正则表达式的元字符
44 | 正则表达式分组功能实例
45 | 正则表达式库函数match与s...
46 | 正则表达式库替换函数sub...
47 | 日期与时间函数库
48 | 数学相关库
49 | 使用命令行对文件和文件夹...
50 | 文件与目录操作库
51 | 机器学习的一般流程与NumP...
52 | NumPy的数组与数据类型
53 | NumPy数组和标量的计算
54 | NumPy数组的索引和切片
55 | pandas安装与Series结构
56 | Series的基本操作
57 | Dataframe的基本操作
58 | 层次化索引
59 | Matplotlib的安装与绘图
60 | 机器学习分类的原理
61 | Tensorflow的安装
62 | 根据特征值分类的模型和代...
63 | 网页数据的采集与urllib库
64 | 网页常见的两种请求方式ge...
65 | HTTP头部信息的模拟
66 | requests库的基本使用
67 | 结合正则表达式爬取图片链...
68 | Beautiful Soup的安装和...
69 | 使用爬虫爬取新闻网站
70 | 使用爬虫爬取图片链接并下...
71 | 如何分析源代码并设计合理...
本节摘要

课程源码、课件及课后作业地址:

https://github.com/wilsonyin123/geekbangpython

精选留言(5)

  • 2019-02-11
    match() 不匹配出来不是什么完全不完全,是因为 match 必须从字符串开头进行匹配,相当于自带了一个 ^

    作者回复: 这个解释相当精辟,它是依据正则来匹配的。但是还有很多对正则符号不熟悉的同学,所以在视频中没用这种方式解释一个新的概念。

    2
  • 2019-10-24
    问下老师,python3调用java的jar包时遇到com.p4.pt这种路径该怎么调用,用开发工具打开jar包时这个路径在同一阶层,连着的,就像我写的这样,所以调用时这个路径该怎么写
  • 2019-10-03
    请问老师为什么如果月份或日期前出现字母的话用search也匹配不了?
  • 2019-08-18
    无意间发现{}写都位置会对结果产生很多影响 ,如下两个正则都group出力看很有意思
    p = re.compile('(\d+)-(\d+)-(\d+)')
    pr = re.compile(r'(\d){4}-(\d){2}-(\d{2})') #注意{}位置
    print('p 1', p.match('2018-01-01'))
    print('p 2', p.match('2018-1-01'))
    print('pr ', pr.match('2018-01-01'))
    以下都出力对比看很有意思{n}写在()内外会对用取得的长度有影响
    print('p groups():', p.match('2018-01-01').groups())
    print('p group() :', p.match('2018-01-01').group())
    print('p group(0):', p.match('2018-01-01').group(0))
    print('p group(1):', p.match('2018-01-01').group(1))
    print('p group(2):', p.match('2018-01-01').group(2))
    print(':***************************')
    print('pr groups():', pr.match('2018-01-01').groups())
    print('pr group() :', pr.match('2018-01-01').group())
    print('pr group(0):', pr.match('2018-01-01').group(0))
    print('pr group(1):', pr.match('2018-01-01').group(1))
    print('pr group(2):', pr.match('2018-01-01').group(2))
    output:----------------------------------
    p 1 <_sre.SRE_Match object; span=(0, 10), match='2018-01-01'>
    p 2 <_sre.SRE_Match object; span=(0, 9), match='2018-1-01'>
    pr <_sre.SRE_Match object; span=(0, 10), match='2018-01-01'>
    p groups(): ('2018', '01', '01')
    p group() : 2018-01-01
    p group(0): 2018-01-01
    p group(1): 2018
    p group(2): 01
    :***************************
    pr groups(): ('8', '1', '01') ->{}在()外面只取得一位
    pr group(): 2018-01-01
    pr group(0): 2018-01-01
    pr group(1): 8
    pr group(2): 1
    展开
  • 2019-03-21
    老师这里有个问题:
    p1 = re.compile(r'(\d+)-(\d+)-(\d+)')
    print('search1:',p1.search('asd2019-3-1sdf'))
    print('search2:',p1.search('asd2019-as3-1sdf'))
    print('search3:',p1.search('asd2019-3sd-1df'))

    返回:
    search1: <_sre.SRE_Match object; span=(3, 11), match='2019-3-1'>
    search2: None
    search3: None

    search不是对需要匹配的值进行搜索吗,为什么后面两种返回的是None
    展开

    作者回复: 没有匹配成功所以返回了NONE