这1次,用4个象限理清 RegEx 正则表达式

前面先讲一点虚的。不论是你是否学习过编程,前面的文字都是为你准备的。
后面讲如何理清正则表达式,如果你不需要编程的内容,可以直接跳出。

正则表达式,更容易理解的翻译应该是规则表达式,或者文字匹配规则表达式,用来匹配文字出现的规则,配合其他工具可以找到一篇文章中符合这个规则的文字的位置。这就是一个正则表达式:

/([A-Z])\w+/

编程中经常会用到正则表达式,但是我每次都要去查书,如果不查书,心里就会对正则表达式的语法使用感觉模模糊糊的。其实查了书,也感觉对正则表达式的使用方法很模糊,因为没有刻意去记住使用方法,甚至因为工具书就在触手可及的地方,所以总是觉得不用刻意去记。

另外,工具书上对正则表达式的叙述,考虑的可能主要是全面,而不是能否记住。

你看他都是这样线性列出的,像个一维数组。这是编写字典的节奏, 我们查字典的时候,比如我们知道我们要什么,只是忘了语法,来这里查字典会很方便。但如果我们不知道我们想要什么,我们只是希望知道正则表达式能帮我们解决什么,用另外一种方式编配就比较好。什么方式。面向对象的方式,model 真实世界的需求。而不是面向过程。想着计算机是语法是怎么排布的。

而不是使用者的角度去梳理这些知识的。我们就是这些知识的使用者,我们眼里最关心的不是正则表达式有哪些语法,而是正则表达式能解决那些问题(当然,要解决那些问题必须依据语法写出代码)。但其实这几个知识点是有更好的结构可以组织起来的。我用一个二维标准对这些知识进行了一个分类,你可以说是强行分类,也可以说是正则表达式中本来就有这样的规律。

但这里还有一个问题,我们其实已经知道正则表达式能帮我们做什么了。我们又能查字典,为什么还有记住他呢。又没有人考试。我想的是,把知识烧进内存(大脑),和放在硬盘(书里)的调用速度肯定是不一样的。而且,放在书里,你可能都想不起来调用,毕竟,如果你还没有财富自由的话,如果你身边还有困惑的话,我告诉你,这些困惑早就被某些人解决了,并且写在书里,放在图书馆里(人类知识的硬盘),或者他就在你的书架上,只是你还没来得及看那本书。你说他能解决你的问题么。你怎么不去调用他呢,因为你根本不知道去调用他。而且人们做决策时根据容易程度来做决策的,而不是根据是否正确,你不把东西烧进内存,让某个方法即容易有正确,你的大脑就更愿意扭曲问题,用一个本来不是解决问题的方法去解决那个问题,如果这个被扭曲出来的方法更容易的话。比如,有多少次你跟产品经理说这个东西做不了,但真正的原因是比较难做,至少对于你现在的系统架构,或者你的个人水平来说比较难做。如果你把某些东西连的熟悉一点,你可能就不这么说了。

推荐阅读更多精彩内容