Python中的正则表达式 | 行业论坛第5讲笔记
Scalers点评:5月3日晚上,成长会行业论坛第5讲举行。小龙与大家分享了Python中的正则表达式以及Python语言的一些基础情况。成长会的成员有很多有意思的地方,比如有一部分是英语相关专业从业者,有一部分是IT从业者,比如S君。当两个不同领域的人交织在一起碰撞玩耍的时候,会产生什么样的火花。其实第5讲就是一次试探,由于我一直是多领域学习行动的倡导者,强调成长会的成员打开视野,消除偏见。上周日晚上,尽管是一个技术型的报告,但是有许多英语专业的同学,仍然坚持听完并且记录笔记。同时,我也相信正则表达式能给文字工作者,带来较大的效率提升。以下是小龙的整理和复盘。
一、Word?TXT?
1、用图片展示Word中的查找(Ctrl+f)与替换(Ctrl+h)功能,在“更多”选项里有区分大小写、查找单词的所有形式等高级选项,可完成稍微高级点儿的查找替换任务。(正则的一个应用)
2、提供一个应用场景
将PDF内容拷贝到Word中时,PDF的页码会和当前页的最后一个单词连在一起,就像这样respect.1...book.2...schools.3....,遇到这种问题要怎么处理?
(Word的查找替换起不了多大作用)
两种处理办法:
a. 挨个查找,逐个修改;(费时、效率低);
b. 写个正则的程序来处理。(引出正则)
3、引用例子揭示记事本的不足,推荐使用Notepad++纯文本编辑器来打开TXT文档,它有一些高级的查找替换功能。当然,最最高级的还是程序……
4、
二、正则表达式的概念及应用
1、用到的几个术语:字符串、匹配、模块
2、正则表达式的概念
3、常见的应用
a. 各大网站的验证
b. 工具中的使用
c. 程序(爬虫等)
三、正则表达式的基础用法
1、大多数字母和字符可以匹配它们自身
2、元字符(特殊含义的字符),并一一解释了其含义
3、贪婪匹配(尽可能多的匹配)和非贪婪匹配(尽可能少的匹配)的匹配步骤
4、应用:对手机号正则表达式的解析
四、Python的相关介绍
1、特性:简介、功能强大
2、起源:奇葩的诞生与命名
五、Python中正则的使用
1、从Python中字符串的反斜杠问题引出原始字符串
2、Python的正则中常用的俩个方法:查找功能的findall方法、查找与替换功能的sub方法
3、Python的正则中常用到的两个标志(flags):re.M(多行)与re.I(忽略大小写)
4、稍微高级点的用法:分组和反向引用
5、解决PDF拷贝到Word中的页码问题,并对用到的正则进行剖析
六、高级用法
1、预览
a. \b 、\B、\A、\Z
b. 分组、反向引用、命名组、非捕获组
c. 向前断言、向后断言
d. 模式内嵌修正器、条件匹配
e. 字符串查找替换、匹配结果的操作
2、加入Coding小组进行讨论
七、问答
1、python就是用来在你选的素材里找出想要的或者改变里面的数据嘛?
Python是一门功能非常强大的编程语言,Python中正则的使用可以用来处理选定的素材,对其进行筛选或替换等操作。
2、正则表达式不分语言吧?规则都类似吧?
是的,正则表达式的基本规则是类似的。但是,不用的语言中对正则又有一些新的定义,例如Python中的命名组(在扩展阅读中)。掌握了一门语言中的正则后,其他语言中的也能很快的理解并掌握。
八、致谢与感悟
1、非常感谢S君、喵叔、shadow和hemon在试讲结束后提出的宝贵建议。
2、非常非常感谢S君在分享的时候对每张PPT做的详尽剖析,使小伙伴们能更好的理解。
3、当要输出的时候才知输入的有多匮乏,输出倒逼输入,不愧为“讲讲讲”的真谛。
4、真正的掌握是什么?是可以把知道的东西讲出来,而不仅仅是“我知道,我了解”。这就需要总结和复盘了
本文原文在http://scalerstalk.com/491-lec05-summary,首发ScalersTalk
=========
本文作者Scalers,游走在口译世界的IT从业者。微信公众号ScalersTalk,网站ScalersTalk.com
如需要转载请联系授权,否则将被公开谴责并追究法律责任。