正则到底是怎么个技术?

最近主要在研究Python和Linux,耽误了更新进度(Linux和Python真心好玩啊)。在这里先谢过热心的粉丝提醒,A哥还会坚持把VBA的内容更新下去。

上回我们说到,正则是一个很强大的工具。但具体怎么个强大法呢?我们先从一个例子看起。

某天你正在装作努力工作,老板过来扔给你一张表格:

定睛一看,这不是17年下半年各大旗舰机的发布时间么?老板要求你把各个机型的发布时间都提取出来,用来后面分析各大厂家的发布节奏以及研发周期。

仔细看看我们的数据,似乎很规整,都是这种套路出来的:

这简单啊,直接用split就行了!

当然,你赢了,我们可以用Split函数,只需要设定一些固定的分割点(于,年,月,日),如果你不嫌嵌套4层Split麻烦的话。

如果你已经和A哥一样懒,同时也意识到了嵌套4层Split会让程序的稳定性变差,那么我们就来研究一种新式的字符串匹配的方法,也就是正则(Regular Expression)了。

核心概念:Pattern

简单点来讲,我们可以把正则表达式看作是一种字符串匹配技术。

我们把要匹配的字符串的模式称为Pattern。例如,在上面例子里,如果要匹配日期,按照汉语的惯例,我们所需要的pattern就是:

是不是和新闻报道里的李某某的写法思路出奇的一致?

当然,机器是不会理解我们的汉语的,我们把上面的pattern翻译成机器可以读懂的语言,就是

什么鬼?机器的语言我看不懂啊!

稳住,我们能赢!

其实上面这个pattern从字面上并不难理解。我们会在后面详细介绍。

先预告一下,在接下来的2-3期内容我们都不会使用VBA。这就是像是打羽毛球,或者是击剑,最开始都是练步法,根本不需要上器械。

那我们在哪里练习呢?网上有很多可以在线测试正则表达式的网站,随便搜一个就能用。

我们就先用这个网站: http://tool.chinaz.com/regex/

来测试一下我们之前匹配日期的pattern:

Perfect!

接下来,我们就该学习如何构建我们想要的Pattern了。下回见!

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171208G0TUXR00?refer=cp_1026

扫码关注云+社区