NLPer为什么偏爱正则表达式?

2020 年 6 月 10 日 AINLP

多年前当我第一次学习NLP经典书籍斯坦福大学 Dan Jurafsky教授的《

Speech and Language Processing(中文译名:自然语言处理综论)》第一版的的时候,发现导引之后的第一课是正则表达式,直至今天,SLP的第三版还未完工,但是正则表达式这一节依然在导引之后:



第一次读这本书的时候对正则表达式还无感,直到后来的工作中无数次和正则打交道才理解这样安排的意义,作为文字处理从业者,NLPer每天都在和文本打交道,没有正则表达式这个神器,工作效率估计会大打折扣,所以给大家推荐一门正则表达式的入门课,感兴趣的同学可以看看,以下是广告时间:


👆扫我的二维码,免费试读

结算用口令「weizhong8」,再减 5 元

到手 ¥50,仅限 100 



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

 

说实话,我曾经也是这么觉得的,直到很久后,我才发现正则就是看似不用没什么影响,但一旦熟练应用了,就再也放不下的效率神器

 

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

 

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

               

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

 

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

 

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

 

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

 

诸如此类的抱怨,我也经常听到,作为过来人,我只能说“我们都一样”,想想你之前是不是也是这么做的:

 

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

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

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

 

总结起来,就是没有系统学习正则、没有高效的记忆法。所以我也一直在找可以系统学正则的资料,机缘巧合,我在极客时间上看到一个涂伟忠讲解正则的「视频」,梳理得非常到位,可以先“mark”后看。

 

 

说实话,还挺受益的,所以在听说涂伟忠又在极客时间推出了《正则表达式入门课》专栏,我毫不犹豫地下手了,他的表达方式一如既往通俗易懂,也梳理了一套正则的系统学习路径,将通过多场景的案例,带你实操正则应用,真正做到可以跨平台、多语言活学活用,让正则这个强大的工具在你手上发挥出真正的威力。

 

下边是他总结的正则表达式记忆脑图中的“元字符”部分,分享给你,建议收藏👇

 

             

 

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

 

 

👆扫我的二维码,免费试读

结算用口令「weizhong8」,再减 5 元

到手 ¥50,仅限 100 

 

 

涂伟忠是谁?

 

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

 

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

 

其实说起学正则,大家的核心需求基本就是要「系统」,所以我也在看了几篇文章后,给你总结下这个课怎么讲的,共两个模块:先讲正则重要的概念和功能,再以工作中的真实案例,带你实操应用。

 

一.基础知识

 

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

 

二.实操应用

主要讲正则的进阶内容,比如:

 

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

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

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

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

  • ....

 

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

 

学完这个课程,你将获得:


  • 正则表达式的系统学习路径

  • 事半功倍的分类记忆法

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

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

 

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

 

             

 

订阅福利

 

早鸟优惠  ¥50

结算用口令「weizhong8」,再减 5 元


到手 ¥50,仅限 100 


 

 

👆扫我的二维码,免费试读

 

 

👇 点击「阅读原文」可直接购买,记得使用优惠口令「weizhong8」,以最优惠价 ¥50 入手。

登录查看更多
0

相关内容

正则表达式(Regular Expression,一般简写为RegEx或者RegExp),也译为正规表示法、常规表示法,台湾译「规则运算式」,在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。
【2020新书】实战R语言4,323页pdf
专知会员服务
98+阅读 · 2020年7月1日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
229+阅读 · 2020年5月21日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
160+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
173+阅读 · 2020年1月1日
中文自然语言处理入门
人工智能头条
5+阅读 · 2019年3月4日
中文自然语言处理入门实战
人工智能头条
14+阅读 · 2019年1月11日
Python NLP入门教程
七月在线实验室
7+阅读 · 2018年6月5日
自然语言处理(4)之中文文本挖掘流程详解(小白入门必读)
机器学习算法与Python学习
5+阅读 · 2017年12月22日
深度 | 为什么要利用NLP做情感分析?
大数据文摘
4+阅读 · 2017年12月22日
独家 | 为什么要利用NLP做情感分析?
数盟
13+阅读 · 2017年12月20日
为什么说自然语言处理是AI皇冠上的明珠
算法与数据结构
5+阅读 · 2017年12月5日
Python NLP 入门教程
开源中国
14+阅读 · 2017年10月1日
Natural 自然语言处理(NLP)「全解析」
人工智能学家
14+阅读 · 2017年9月23日
如何用Python做舆情时间序列可视化?
CocoaChina
11+阅读 · 2017年7月21日
Arxiv
29+阅读 · 2020年3月16日
Arxiv
4+阅读 · 2018年9月6日
Arxiv
14+阅读 · 2018年5月15日
Arxiv
10+阅读 · 2018年3月22日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
98+阅读 · 2020年7月1日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
229+阅读 · 2020年5月21日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
160+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
173+阅读 · 2020年1月1日
相关资讯
中文自然语言处理入门
人工智能头条
5+阅读 · 2019年3月4日
中文自然语言处理入门实战
人工智能头条
14+阅读 · 2019年1月11日
Python NLP入门教程
七月在线实验室
7+阅读 · 2018年6月5日
自然语言处理(4)之中文文本挖掘流程详解(小白入门必读)
机器学习算法与Python学习
5+阅读 · 2017年12月22日
深度 | 为什么要利用NLP做情感分析?
大数据文摘
4+阅读 · 2017年12月22日
独家 | 为什么要利用NLP做情感分析?
数盟
13+阅读 · 2017年12月20日
为什么说自然语言处理是AI皇冠上的明珠
算法与数据结构
5+阅读 · 2017年12月5日
Python NLP 入门教程
开源中国
14+阅读 · 2017年10月1日
Natural 自然语言处理(NLP)「全解析」
人工智能学家
14+阅读 · 2017年9月23日
如何用Python做舆情时间序列可视化?
CocoaChina
11+阅读 · 2017年7月21日
Top
微信扫码咨询专知VIP会员