You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
4.9 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 结束语 | 使用正则提高你的人生效率
你好,我是伟忠。
时间过得真快,我们这门《正则表达式入门课》到这里也就告一段落了。
虽然我之前做过每日一课的课程,也经常给朋友像讲课一样讲正则。但实际上,想要真正把正则用一门课的形式来呈现出来,还是不简单的。我每篇文章的写稿时间基本都在十个小时以上,可以说,正则这个专栏倾注了我很多的心思。每次深夜绞尽脑汁写稿略感疲惫的时候,看看大家充满热情的留言,真是给了我很多的力量。
所以借着这个宝贵的机会,我想特别感谢所有参与这个专栏的同学,感谢你们一路的陪伴和坚持,借着这个机会,我也再和你唠叨唠叨,如何运用正则以及如何进一步成长。
正则涉及的编程语言和工具非常多,我没有办法去完全讲完,因为那样专栏会变得比较琐碎。在我看来,咱们学习任何内容,在一开始时,都不要过分去注重细节,重要的是掌握正确的方法,先从整体上入手,掌握核心的概念。比如当你学习了字符组、多选结构、量词、锚点、贪婪&非贪婪、流派、匹配原理这些核心知识之后,你要在后续遇到问题时,查阅一下相关文档,很快就可以解决掉了。
## 熟练运用,而不滥用
有些同学在学习正则之后,遇到问题总是想“展示一下身手”,这种心理无可厚非,但一定要记住在使用正则的过程中,一定要克制。
我之前在课程里面提到的,“[密码是6位且不能有连续两个数字出现](https://time.geekbang.org/column/article/259437)”这个例子,如果你要高效解决这个问题,没必要非得用正则,完全可以遍历一下字符串,看下有没有两个连续的数字,这样解决起来容易。
所以啊,不要总想着非得用正则来完成事情,也不要总是想使用一个正则来完成整件事情,如果你把一个正则拆分成多个正则更方便、更易于理解和维护,我们就拆成使用多个正则来完成。比如刚刚说的例子,我们可以先判断输入的内容是不是符合 \\w{6} 再判断里面是不是有连续的两位数字,这样通过分步解决会简单很多。
我们要熟练运用正则,但不能滥用正则,不要手里拿着锤子,看啥都是钉子。用普通字符串就能很好解决的问题,就不要使用正则。用多个正则更清晰,更不容易出错,就不要有“非得要用一个正则解决所有问题”的执念。毕竟我们学习正则的目的,就是想高效地完成文本处理工作,但完成这个目标有很多方式,正则只是其中一种。
## 如何进一步成长?
在这个技术太多,变化太快的时代,我们需要不断地学习。同样,我也很庆幸正是在这个时代,有了像极客时间这样的平台,我们能够以专栏这种全新的方式来进行学习。可能你会觉得技术太多,压根学不完,但不要担心,基础原理性的东西绝对可控。我们需要做的就是沉下心来,不要浅尝辄止,越是基础的内容越重要,一次性多投入些时间,弄清楚,搞明白。多动手练习,实践出真知。
**当你觉得你掌握了正则之后,你可以尝试把它教给别人,或者你可以想一下,如果让你来讲正则,你会怎么讲?**这样能够让你有更深刻的理解,用这个方法,你就能知道,自己到底是不是真的搞懂正则了。
如果你坚持学完了这个专栏那么你对正则的掌握已经超过了绝大多数人在日常工作中使用应该没什么问题了。另外如果你觉得还没有学过瘾可以再去看一下《精通正则表达式》第3版和 《正则指引》第2版这两本书。第一本书不用多说这应该是正则方面最为权威的一本书了对正则的原理等都有比较深入的讲述。第二本是余晟写的有大量的编程语言示例比较接地气对正则表达式如何处理中文有比较详细的讲解。
到此,我的《正则表达式入门课》也就告一段落了。不过课程结束并不是终点,我们还可以在留言区互动交流。我也会不定期更新专栏,以加餐等方式来继续完善这篇专栏,和你一起继续精进。我坚信正则表达式这个工具,掌握之后一定会让你受益终生,愿正则能提高你的人生效率。
当然,我知道很多同学都喜欢“潜水”,但是在本篇专栏的最后,我希望你能**分享一下你的学习方法**。此外,我给你准备了一份毕业调查问卷,题目不多,希望你花两分钟填写一下,我非常想听听你对这个课程的收获和建议。最后,再次感谢!我们留言区见。
[![](https://static001.geekbang.org/resource/image/3e/d8/3eb244c9889053bd653768bbef90b3d8.jpg)](https://jinshuju.net/f/vGf4Hm)