你好,我是伟忠。

时间过得真快,我们这门《正则表达式入门课》到这里也就告一段落了。

虽然我之前做过每日一课的课程,也经常给朋友像讲课一样讲正则。但实际上,想要真正把正则用一门课的形式来呈现出来,还是不简单的。我每篇文章的写稿时间基本都在十个小时以上,可以说,正则这个专栏倾注了我很多的心思。每次深夜绞尽脑汁写稿略感疲惫的时候,看看大家充满热情的留言,真是给了我很多的力量。

所以借着这个宝贵的机会,我想特别感谢所有参与这个专栏的同学,感谢你们一路的陪伴和坚持,借着这个机会,我也再和你唠叨唠叨,如何运用正则以及如何进一步成长。

正则涉及的编程语言和工具非常多,我没有办法去完全讲完,因为那样专栏会变得比较琐碎。在我看来,咱们学习任何内容,在一开始时,都不要过分去注重细节,重要的是掌握正确的方法,先从整体上入手,掌握核心的概念。比如当你学习了字符组、多选结构、量词、锚点、贪婪 & 非贪婪、流派、匹配原理这些核心知识之后,你要在后续遇到问题时,查阅一下相关文档,很快就可以解决掉了。

熟练运用,而不滥用

有些同学在学习正则之后,遇到问题总是想“展示一下身手”,这种心理无可厚非,但一定要记住在使用正则的过程中,一定要克制。

我之前在课程里面提到的,“密码是 6 位,且不能有连续两个数字出现”这个例子,如果你要高效解决这个问题,没必要非得用正则,完全可以遍历一下字符串,看下有没有两个连续的数字,这样解决起来容易。

所以啊,不要总想着非得用正则来完成事情,也不要总是想使用一个正则来完成整件事情,如果你把一个正则拆分成多个正则更方便、更易于理解和维护,我们就拆成使用多个正则来完成。比如刚刚说的例子,我们可以先判断输入的内容是不是符合 \w{6},再判断里面是不是有连续的两位数字,这样通过分步解决会简单很多。

我们要熟练运用正则,但不能滥用正则,不要手里拿着锤子,看啥都是钉子。用普通字符串就能很好解决的问题,就不要使用正则。用多个正则更清晰,更不容易出错,就不要有“非得要用一个正则解决所有问题”的执念。毕竟我们学习正则的目的,就是想高效地完成文本处理工作,但完成这个目标有很多方式,正则只是其中一种。

如何进一步成长?

在这个技术太多,变化太快的时代,我们需要不断地学习。同样,我也很庆幸正是在这个时代,有了像极客时间这样的平台,我们能够以专栏这种全新的方式来进行学习。可能你会觉得技术太多,压根学不完,但不要担心,基础原理性的东西绝对可控。我们需要做的就是沉下心来,不要浅尝辄止,越是基础的内容越重要,一次性多投入些时间,弄清楚,搞明白。多动手练习,实践出真知。

**当你觉得你掌握了正则之后,你可以尝试把它教给别人,或者你可以想一下,如果让你来讲正则,你会怎么讲?**这样能够让你有更深刻的理解,用这个方法,你就能知道,自己到底是不是真的搞懂正则了。

如果你坚持学完了这个专栏,那么你对正则的掌握已经超过了绝大多数人,在日常工作中使用应该没什么问题了。另外,如果你觉得还没有学过瘾,可以再去看一下《精通正则表达式》(第 3 版)和《正则指引》(第 2 版)这两本书。第一本书不用多说,这应该是正则方面最为权威的一本书了,对正则的原理等都有比较深入的讲述。第二本是余晟写的,有大量的编程语言示例,比较接地气,对正则表达式如何处理中文有比较详细的讲解。

到此,我的《正则表达式入门课》也就告一段落了。不过课程结束并不是终点,我们还可以在留言区互动交流。我也会不定期更新专栏,以加餐等方式来继续完善这篇专栏,和你一起继续精进。我坚信正则表达式这个工具,掌握之后一定会让你受益终生,愿正则能提高你的人生效率。

当然,我知道很多同学都喜欢“潜水”,但是在本篇专栏的最后,我希望你能分享一下你的学习方法。此外,我给你准备了一份毕业调查问卷,题目不多,希望你花两分钟填写一下,我非常想听听你对这个课程的收获和建议。最后,再次感谢!我们留言区见。