掌握这套正则全攻略,让你少写 1000 行代码 | 极客时间

2020 年 6 月 9 日 InfoQ

说起正则表达式,相信大家都不陌生。在很多程序员的认知中,这东西并不难,在工作中用的也不多,每次用的时候去 Google 搜一搜,然后复制过来改一改,问题就解决了,看起来效率特别高,好像完全没必要专门花时间和精力去学它。

如果你也是这么觉得,我只能说,你对正则这个强大的工具,还不够了解。在我看来,正则就是看似不用没什么影响,但一旦熟练应用了,就再也放不下的“效率神器“。

为什么这么说?众所周知,作为计算机领域最伟大的发明之一,正则表达式简单、强大,极大地提高工作中的文本处理效率。而且几乎所有的编程语言,无论是前端的 JavaScript、还是后端的 Java、Python,以及各大操作系统、文本编辑器都支持正则表达式。

可以说,它围绕在日常工作中的方方面面。比如,我们经常需要从大段文本中抽取需要的内容,学会使用正则之后,不用写代码就可以完成类似的日常工作。举个例子,假如我们在 Sublime Text 3 中使用正则,查找重复出现的单词,并且想把它替换成单个单词。

菜单中的 Find -> Replace,在查找栏中输入 (\w+) \1,在替换栏中输入子组的引用 \1 ,然后点击 Replace All 就可以完成替换工作了。这样,通过少量的正则,我们就完成了文本的处理工作了。是不是很方便呢?

用了正则后,你会发现,之前 20 分钟才能解决的问题,现在 2 分钟就可以搞定,比如你还可以利用它来校验数据的有效性,判断用户输入的手机号是不是符合规则;也可以从文本中提取想要的内容,比如从网页中抽取数据;还可以用来做文本内容替换,从而得到我们想要的内容等等。

这些需要耗时很长的工作,用正则分分钟就可以解决。毫不夸张的说,学会灵活应用正则,能够让你至少可以少写 1000 行代码。

正则是真的强,但感觉很复杂,记不住,一学就劝退啊?

相信这是不少人的心声,其实,你之所以觉得正则”难学难记“,究其根本,还是因为:

  1. 用的时候,依靠从网上复制粘贴,运行全凭运气,对于如何构成,不求甚解;

  2. 不懂正则表达式的底层原理和逻辑,在网上找到的正则总与自己的需求有些出入,看不懂,也不会改,达不到预期的效果,或者容易出现性能问题;

  3. 不重视正则,觉得没有必要专门花心思学,用的时候才发现“方恨少“。

总结起来,就是没有系统学习正则、没有高效的学习记忆法。早在之前我在极客时间上做过一个讲解正则「视频」,就曾经给这些问题提供过一些解决思路。

在视频中,关于正则记忆和使用,我提炼过一套学习图谱,得到了不少同学的热烈反响,但时长有限,无法展开细讲。所以,这次我在极客时间推出了《正则表达式入门课》专栏,想用通俗易懂的方式,给你套正则的系统学习路径,通过多场景的案例,带你实操正则应用,真正做到可以跨平台、多语言活学活用,让正则这个强大的工具在你手上发挥出真正的威力。

立即扫码,免费试读👆结算时,

输入优惠口令「weizhong9」

到手价 ¥ 50 立省 ¥ 18

仅限「前 200 人」有效

为了帮你事半功倍的学习正则,在这里,我也把我整理的记忆脑图中的“元字符”部分,分享给你,建议收藏👇

优秀的程序员,不会用行动的勤奋来掩盖思考和学习的懒惰,与其用的时候再去查,修修补补,真正系统学会正则,才可以真正提高你的工作效率。

我是谁?

我是涂伟忠,现任某大型企业高级研发工程师,工作以来一直从事后端服务研发工作,在服务端开发方面有非常丰富的实战经验。编程十多年来,一直坚持技术输出,著有《Django 开发从入门到实践》一书,也是极客时间每日一课《15 分钟带你快速掌握正则表达式》的作者。

我是如何讲解正则表达式的?

为了真正解决大家「系统学习正则」这一核心的需求,我在设计课程时,会先带你掌握正则重要的概念和功能,再以工作中的真实案例,带你实操应用。基于整个思路,课程共两个模块:

 一. 基础知识

正则的很多基本知识其实并不难,只是难记,记住并理解它,才是我们的最终目的。所以这部分我将讲述正则的基础概念和知识,比如正则元字符、匹配模式等,帮助大家巧妙记忆正则,并系统地建立有关正则的基础框架。

 二. 实操应用
  • 这里我主要讲正则的进阶内容,比如:

  • 正则中的断言,包括单词边界、行开始和结束、环视;

  • 正则中的主要流派,以及对应的软件实现;

  • 正则的工作机制和常见的优化方式等;

  • 不同编译器里的正则都有什么不同?

  • ....

通过这些内容,可以让你更加游刃有余地使用正则,也可以避过很多坑。比如,为什么在编程语言中能工作的正则,在 Linux 命令 grep 中就不能工作了呢?正则匹配的原理又是什么?如何写出性能更好的正则呢?等等,让你把正则这个工具更好地落地到实际工作中。

 学完这个课程,你将获得:
  • 正则表达式的系统学习路径

  • 事半功倍的分类记忆法

  • 30+ 常见问题及解决方案

  • 多场景案例实操正则应用

1 分钟看看目录,相信你会有所得👇

 限时订阅福利

1 早鸟优惠 ¥55,原价 ¥68,结算时,输入优惠口令「weizhong9」,到手价 ¥ 50,立省 ¥18 ,仅限「前 200 人」有效

2 订阅后分享海报,每邀请一位好友订阅,可得 ¥18 返现,多邀多得,上不封顶。

👆 立即扫码,免费试读

温馨提示:

订阅后可通过「极客时间 App」或「极客时间小程序」我的 - 已购,学习已订阅的专栏。


👇点击「阅读原文」

输入优惠口令「weizhong9」

最低价 ¥50 入手,仅限 前 200 人。

登录查看更多
0

相关内容

正则表达式(Regular Expression,一般简写为RegEx或者RegExp),也译为正规表示法、常规表示法,台湾译「规则运算式」,在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【实用书】Python数据科学从零开始,330页pdf
专知会员服务
141+阅读 · 2020年5月19日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
阿里技术专家:优秀工程师是怎样炼成的?
51CTO博客
8+阅读 · 2019年6月15日
Python 如何快速入门?
全球人工智能
6+阅读 · 2018年3月15日
实战 | 40行代码实现人脸识别
七月在线实验室
3+阅读 · 2018年3月7日
给程序员的10条建议,吐血推荐!
R语言中文社区
3+阅读 · 2017年12月21日
Arxiv
6+阅读 · 2018年11月1日
Arxiv
136+阅读 · 2018年10月8日
Arxiv
7+阅读 · 2018年6月8日
Arxiv
4+阅读 · 2018年6月5日
Arxiv
8+阅读 · 2018年4月8日
Arxiv
8+阅读 · 2018年1月25日
Arxiv
8+阅读 · 2014年6月27日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【实用书】Python数据科学从零开始,330页pdf
专知会员服务
141+阅读 · 2020年5月19日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
相关资讯
阿里技术专家:优秀工程师是怎样炼成的?
51CTO博客
8+阅读 · 2019年6月15日
Python 如何快速入门?
全球人工智能
6+阅读 · 2018年3月15日
实战 | 40行代码实现人脸识别
七月在线实验室
3+阅读 · 2018年3月7日
给程序员的10条建议,吐血推荐!
R语言中文社区
3+阅读 · 2017年12月21日
相关论文
Arxiv
6+阅读 · 2018年11月1日
Arxiv
136+阅读 · 2018年10月8日
Arxiv
7+阅读 · 2018年6月8日
Arxiv
4+阅读 · 2018年6月5日
Arxiv
8+阅读 · 2018年4月8日
Arxiv
8+阅读 · 2018年1月25日
Arxiv
8+阅读 · 2014年6月27日
Top
微信扫码咨询专知VIP会员