正则表达式系列总结 - 知乎专栏

前端之家收集整理的这篇文章主要介绍了正则表达式系列总结 - 知乎专栏前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

https://zhuanlan.zhihu.com/p/27653434?utm_source=tuicool&utm_medium=referral

用了接近一个月的时间,终于把正则表达式系列写完了。

这是一篇总结文章,算是给读者和自己的一个交代。

首先感谢大家的支持,尤其是给出赞赏的朋友们。

先说说本文要写些什么:

1. 系列目录导航

2. 系列的结构

3. 需要注意的地方

4. 参考资料

5. 个人感悟

6. 系列名称征集

1. 系列目录导航

内容尽量涵盖了正则表达式的方方面面,总共7篇文章

《正则表达式字符匹配攻略》

《正则表达式位置匹配攻略》

《正则表达式括号的作用》

《正则表达式回溯法原理》

《正则表达式的拆分》

《正则表达式的构建》

《正则表达式编程》

2. 本系列的结构

下面大体介绍一下,本系列各文章都讲述了什么。

正则是匹配模式,要么匹配字符,要么匹配位置。

《正则表达式字符匹配攻略》@H_403_49@是讲如何匹配字符的。

《正则表达式位置匹配攻略》@H_403_49@是讲如何匹配位置的。

看完这两篇,基本上可以说正则表达式已经入门了。

在正则中可以使用括号捕获数据,要么在API中进行分组引用,要么在正则里进行反向引用。

《正则表达式括号的作用》@H_403_49@这一篇主要讲这个事情的。

学习正则表达式,是需要了解其匹配原理的。

《正则表达式回溯法原理》@H_403_49@讲述了“回溯”具体为何。

《正则表达式的构建》@H_403_49@中的最后一节里,描述了正则表达式工作的流程。

不仅能看懂别人的正则,还要自己会写正则。

《正则表达式的拆分》@H_403_49@讲述了如何去阅读一个正则。

《正则表达式的构建》@H_403_49@讲述了如何去书写一个正则。

学习正则,是为了在真实世界里应用的。用法和需要注意的地方都有那些?

《正则表达式编程》@H_403_49@这一篇,专门解决这个问题。

这7篇文章,两个小时内,应该能全部看完的。

平时的我们一直都是个“收藏家”。

恩,看起来不错,先收藏起来,以后再看。但自己内心都明白,一般都不会再有以后了。

今日事今日毕,勿将今事待明日。你我共勉!

3. 需要注意的地方

只要看任何一篇,就会知道本系列主要讨论的是JavaScript的正则表达式,更精确地说是ES5的正则表达式。

JavaScript的正则表达式引擎是传统型NFA的,因此本系列的讨论是适合任何一门正则引擎是传统型NFA的编程语言。当然,市面上大部分语言的正则引擎都是这种的。而JS里正则涉及到的所有语法要点,是这种引擎支持的核心子集。也就是说,要学正则表达式,不妨以JS正则为出发点。

4. 参考资料

当然本文不是无本之末。主要参考的是几本书籍。

以下书籍中核心章节都认真阅读过,甚至阅读多遍。

《JavaScript权威指南》,看完本系列,再去看书中的第10章,你就知道了什么叫字字珠玑。

《精通正则表达式》,权威且比较杂乱,我阅读的第一本正则表达式书籍。

《正则表达式必知必会》,这是我看的第二本正则,看完后,确定自己算是入门了。

《正则指引》,《精通正则表达式》的译者写的,相对清晰。

《正则表达式入门》,我看的是英文版的,对于已经入门的我,基本没多少收获了。

《正则表达式经典实例》,除了第3章,比较杂外,也有收获,以实例为主导的一本书。

《JavaScript Regular Expressions》,为数不多转讲JS正则的。页数不多,也有收获。

高性能JavaScript》第5章,我看的是英文版的。第5章,讲了回溯和优化。

使用的工具:

Regulex,一款可视化工具

ProcessOn - 免费在线作图,实时协作

LICEcap – 灵活好用,GIF 屏幕录制工具

5. 个人感悟

始终要动手的

每篇文章里,最后都要提一句:纸上得来终觉浅,觉知此事要躬行。

这是我学习编程最深的感悟,遇到自己模棱两可的都需要敲一遍代码

要多写文章

首先,我十分感谢读者。首先在信息这么泛滥的网络里,人家能点击我的文章瞧两眼,都是对其注意力的消费。更何况,还有很多人都认真读了,甚至给我挑毛病,这都是对我的帮助。

文章的目的,是以教为学。看似为了教,其实是为了学能教会别人才算自己真正学会了,最起码形成了文字,通过了自己的语言逻辑这一关。如果还能有人指出你的错误认知,那样收获就更大了,何乐而不为呢?

很多书中都提到类似的观点,例如《知道做到》《好好学习》《与时间做朋友》《暗时间》等。

以教为学的其他手段

当然,以教为学的手段还有很多,比如翻译一本书。我私下已经翻译了好几本(窃喜^_^)。

可以从薄点的书籍开始,比如100页左右的。基本上使用有道就可以了,也不用要求自己一词一句的翻译,能用自己的话说明白就行了。说到这里,不得不提起,我们的阮一峰大神,在我看来,他就是成功地应用这种模式的。看完外文的文章,理解明白了,用自己的话说一说,再形成自己的简练风格。

恐怕你可能说自己的英文水平不够,没信心尝试。相信我,熟悉了常用词汇(比如literal翻译成字面量)后,配合有道翻译,薄点的书,一天翻译一章是没问题的。当然前提是你懂相关领域,不然是没办法意译的。

最后一种以教为学的手段是,写一本书。写文章是基础,文章多了,自然而言就可以写成一本书。当然,写书强调的是整体架构,所以文章最好成体系。

你看看那些国内专业书籍的作者,一般都事先翻译过几本书的。最起码在前端领域,我就看到了好几个是这么干的。翻译明白了,学会了,用自己的角度去弄出一本书还是相对很容易的。

虽然,我没有写过书,但上述观点,我始终相信是可行的。

本系列标题名称征集

系列虽然写完了,但还没有一个正式的名称

原先用的是《JavaScript正则表达式火拼系列》貌似没有营销效果

下面列出几个可选标题

《You Don't Know Regex》

《正则表达式深入浅出系列》

《正则表达式一网打尽系列》

《还不懂正则,我啃键盘系列》

《正则表达式深入分析系列》

《正则表达式全面解析系列》

不知哪个好,或者有无更好的名字?需要大家的头脑风暴。

最后,有任何正则相关的问题,都欢迎在相应原文里留言。

只要在老姚能力范围之内,必做详细解答。

就这样,本文完。

猜你在找的正则表达式相关文章