零基础学 Python(2018 版)
尹会生
前游戏公司技术总监,前新浪网技术经理
80141 人已学习
新⼈⾸单¥68
课程目录
已完结/共 72 讲
第一章 :Python介绍和安装 (3讲)
第二章 :Python基础语法 (3讲)
第四章 :条件与循环 (5讲)
第五章 :映射与字典 (2讲)
第六章 :文件和输入输出 (2讲)
第七章 :错误和异常 (1讲)
第九章 :模块 (1讲)
第十章 :语法规范 (1讲)
第十一章 :面向对象编程 (4讲)
第十二章 :多线程编程 (2讲)
第十六章 :综合案例 & 结课测试 (1讲)
特别放送 (1讲)
零基础学 Python(2018 版)
登录|注册
留言
13
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 43 | 正则表达式的元字符
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
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与search的区别
46 | 正则表达式库替换函数sub()的实例
47 | 日期与时间函数库
48 | 数学相关库
49 | 使用命令行对文件和文件夹操作
50 | 文件与目录操作库
51 | 机器学习的一般流程与NumPy安装
52 | NumPy的数组与数据类型
53 | NumPy数组和标量的计算
54 | NumPy数组的索引和切片
55 | pandas安装与Series结构
56 | Series的基本操作
57 | Dataframe的基本操作
58 | 层次化索引
59 | Matplotlib的安装与绘图
60 | 机器学习分类的原理
61 | Tensorflow的安装
62 | 根据特征值分类的模型和代码
63 | 网页数据的采集与urllib库
64 | 网页常见的两种请求方式get和post
65 | HTTP头部信息的模拟
66 | requests库的基本使用
67 | 结合正则表达式爬取图片链接
68 | Beautiful Soup的安装和使用
69 | 使用爬虫爬取新闻网站
70 | 使用爬虫爬取图片链接并下载图片
强势回归:零基础学Python2022版来啦!
71 | 如何分析源代码并设计合理的代码结构&结课测试
本节摘要

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

https://gitee.com/geektime-geekbang/geekbangpython

登录 后留言

全部留言(13)

  • 最新
  • 精选
没时间了ngu
\s 是匹配任意空白符的吧,是不是说错了呀

作者回复: 是空白符,感谢指正。 官方文档解释: For Unicode (str) patterns: Matches Unicode whitespace characters 官方文档位置: https://docs.python.org/3.6/library/re.html

2019-02-18
3
Dragon
实际生产环境中除了用来做查询还有别的用吗?

作者回复: 正则表达式的主要作用是“匹配”同一个模式的数据,一般都是原始数据有一定的规则,但又不完全相同:例如在爬取网页里面找到所有的图片,在日志文件提取指定的字段,在用户登录界面匹配是否输入的是邮件地址格式等。

2019-02-21
2
Jarvis
\d 只能匹配一位数字,不能匹配多个

作者回复: \d 匹配单个数字 \d+ 匹配多个连续数字 \d{5} 匹配指定个数(5个)的数字

2019-02-11
2
海绵宝宝
"点"好像不能匹配'\n'吧

作者回复: 标准正则是这样定义的: '.'是除\n 以外可以匹配任何单个字符,但是我们在讲sed 的多行模式的时候,是可以使用“.”匹配换行符的,如 文本文件内容 a b 使用 sed 'N;s/a.b/x/' 文本文件.txt 可以进行替换

2019-07-08
1
MRDVL
时间4:12的时候,讲到关于问号,感觉一次或多次应该也是写成 p = re.compile(r'ca?t') 吧? 试了下似乎 p = re.compile(r'c?t') 不能匹配r'cat', print(p.match(r'cat'))是None。 谢谢

作者回复: 您好, r'ca?t' 可以匹配 cat ct r'c.t' 可以匹配 cat cbt cxt 视频我再回看一下,有问题及时更新,感谢指正

2020-06-09
2
源力
老师,对.*?还是不太理解,如: p = re.compile('a*?') print(p.match('aaaaabb')) 结果:<re.Match object; span=(0, 0), match=''> 为什么没有找到匹配呢?

作者回复: .*?可以理解成一个固定的组合,?跟在*后边时,表示懒惰模式,也称非贪婪模式。 在能使整个匹配成功的前提下尽可能少的匹配字符。

2020-05-29
浪费的时间
jpg跟search才搭配的,按照视频里演示的match实现不了,错误代码如下: p = re.compile('jpg$') print(p.match('aaa.jpg'))
2020-02-10
2
2
冯博林
现在是2022.10.12学习此课有影响么,python更新迭代了么
2022-10-12
源哥60
# 上下文管理器,自动关闭文件,自动处理文件冲突 with open('tt17.txt', 'a') as f: f.write(f'{__file__}运行记录:') f.write(time.ctime()) f.write('---' + str(time.time()) + '\n') print(sys.path) # re.compile().match()匹配开头 print('1------',re.compile('cat').match('cat123'),re.compile('cat').match('123cat123')) # re.compile().fullmatch()匹配全部 print('2------',re.compile('cat').fullmatch('cat123'),re.compile('\d{3}cat\d*').fullmatch('123cat1234')) # re.compile().search()匹配任意 print('3------',re.compile('cat').search('123cat456'),re.compile('cat').search('123caat456')) # .任意非空、非space的单字符 print('4------',re.compile('ca..t').search('123ca12t456')) # *将前一个字符重复任意次(0次与多次),+将前一个字符重复至少1次,?出现一次或不出现 print('5------',re.compile('ca.*t').search('1cat4'),re.compile('ca.*t').search('1ca5t4')) print('6------',re.compile('ca.+t').search('1caaat4'),re.compile('ca.+t').search('1cat4')) print('7------',re.compile('ca.?t').search('1cat4'),re.compile('ca.?t').search('1ca1t4'),re.compile('ca.?t').search('1ca12t4')) # ^开头限定,$结尾限定 print('8------',re.compile('^cat').search('cat4h'),re.compile('^cat').search('ycat4h')) print('9------',re.compile('cat$').search('ttcat'),re.compile('^cat').search('ttcat4')) #{m}出现m次,{m,n}出现[m,n]次,{m,}至少出现m次 print('10------',re.compile('ca{2}t').search('1caat2'),re.compile('ca{2}t').search('1cat2'),re.compile('ca{2}t').search('1caaat2')) print('11------',re.compile('ca{2,3}t').search('1caat2'),re.compile('ca{2,3}t').search('1caaat2'),re.compile('ca{2,3}t').search('1cat2')) print('12------',re.compile('ca{2,}t').search('1cat2'),re.compile('ca{2,}t').search('1caat2'),re.compile('^ca{2,}t').search('caaat27')) # [abc]只匹配枚举的字符(范围写法:[1-9],[a-z]) print('13------',re.compile('c[abc]t').search('1cbt2'),re.compile('c[abc]t').search('cdt'),re.compile('c[1-9]t').search('c6t')) # | 左边整体或右边整体 print('14------',re.compile('c[abc]|5t').search('1cbjj2'),re.compile('c[abc]|5t').search('1c995t2y'),re.compile('c[abc]|5t').search('1cht2'))
2021-08-01
Leolee
结合正则表达式入门课一起学挺好的!简单易懂!
2021-04-21
收起评论