00:00
Hello,大家好,这个小节呢,我们来介绍一下ES9正则扩展的另外一个特性,Dot or模式啊,Dot什么意思呢?Dot这个单词呢,本身有点的意思,而这个点呢,指的是我们正则里边的一个元字符。元字符,那么在正则当中呢?点代表什么符号呢?它代表的是除换行符之外的任意单个字符啊,除。除等会除。换。行幅啊,除。换行符以外的以外的任意单个字符。这是点的一个作用啊,那么这点这DO2的意思就是说我们想要这个点呢,匹配任意字符啊,匹配任意字符啊,那么这样做有什么好处呢?就特别是针对一些HTMLHTML内容,这种内容在进行分析和提取数据的时候呢,这个作用是非常非常明显的,我来给大家举个例子,比方说我这呢准备了一段内容,就是它好,Let s tr,等于这是咱们使用模板字符串来声明。
01:16
拿过来。好,我呢往前推一下以后啊,这个往回推一推,那么现在呢,我们想做一个事情,就是把u Li Li标签里边的电影名称和它的上映时间这两个数据提取出来,存到一个对象当中。再说一遍啊,我们现在的需求是想着把这个ul标签里边的电影名称,以及它对应的上映时间提取出来啊,存到一个对象里边,这是一个需求,好,那么下边咱们该怎么去做呢?哎,如果说按照之前方式去做就很难受。啊,非常非常难受啊,来个RG难受在哪呢?来难受的地方在于这个Li,它有个换行。
02:02
它有个换行,你在写的时候呢,你必须这么写LI2啊Li,然后呢杠S。然后加你得把这块呢给匹配上,后边呢再跟你的A标签A,然后后边再来把A闭合。啊,把AB闭合,然后中间呢,去放置咱们那个内容就是这个。电影名称,而且这呢,你不能贪懒,还要加一个问号。好了,我来先来,先把这个给它演示一下啊,Cost result等于一个reg.ex ec,把S点拿过来好看一下这个结果。我们显著是这块是一个执行啊,匹配上面呢,是声明正则。OK。看看结果。点开它。把其他的圈全关掉啊,刷新一面点开你看这儿啊,第零个元素呢,是整个的一个匹配结果,那么下边唯一这个呢,是肖申克的救赎,就是咱们的电影的一个名称,那匹配完之后你就完事了吗?没有你这个地方还得再匹配,所以说呢,你在这儿还要干嘛加一个杠S,加杠S是单个的空白字符啊,换行符也算是空白字符,然后呢,后边下边这个位置你再去写谁啊P标签。
03:26
啊,P标签好,然后把P补上啊,中间这里边写上点星,还要补一个问号,为什么呀,因为你要禁止贪婪啊,保存切过来看一下,你看这啊,这是名称,这是上线时间,没有问题,那只有两个结构,可能还好啊,如果说结构特别多,你这要疯狂去加杠S。啊,疯狂去加杠S啊,这是啊,没有这个dot or模式之前的一个情况,现在呢,有了dot more dot or模式以后,一起来看一看啊,多了一个谁呀,模式修正符S。
04:05
加入这个模式修正符S以后呢,点将能够匹配任意字符。啊,就是说中间这个换行我也能够匹配,那这样做有什么好处呢?你来看看这个变化啊,我写个Li标签,然后呢,下边这一块啊,像这个地方我就可以干嘛直接点星啊,直接点星通配,还要加一个问号,为什么呀,因为它不能贪婪啊,不能贪婪,然后A标签下边A标签闭合。走,然后中间这一块来个点星也是一样加问号,不让他弹了,到这儿以后呢,咱也不用去加杠S了,直接干嘛再来一个点星,因为到了我们匹配到这儿了啊,这块区域的话我们要去匹配,要不然的话呢,后边内容就对不上了,好这点型,然后问号也是一样,静止贪婪。后边写P标签,再来个P标签闭合,然后中间这块再来个点型问号啊点型问号好了,这样呢,我们就把结果拿到了。
05:03
啊,就把结果拿来,你看起来虽然说可能哎好像影响不是很大,对吧?啊,但是如果说内容结构比较多的话,这个模式是非常非常受用的,非常非常就是。有价值的,好了,一起来看看这个结果,保存切过来,刷新页面,点开,你看肖申克救赎,然后上线时间是这个没有问题,这是单个的一个匹配,那如果说我想把里边全部匹配出来,该怎么办呢?我们就要加这个模式修正符G,全局匹配,然后在这儿呢,我们需要去做一个循环,While result等于reg.ex e c s tr。好,当它匹配不到的时候呢,返回结果是一个,呃,那咱们在外层呢,去声明一下这个变量,好,然后在这儿使用conso log打印一下result,可以来看看结果。保存切过来,看到没有两个啊,肖申克救赎再来一个阿甘正传上映时期是这个,那我们想把它保存起来,那怎么办呢?哎,可以啊,Let一个data啊。
06:11
就是先用let吧,啊来一个数组,然后在这呢,我们写一个data.push啊,来个对象啊,比如说title是result,然后。下标来一个一啊,这是那个标题,然后还有一个time时间是result,下边来个二。好了,完成以后最后呢,输出结果啊,把这个DATA1输出就搞定了,保存切过来。看这啊看这,我把上面这个solo去掉,切过来刷新点开它。你可以看一下title time time就都来了。啊,这是咱们当前给大家演示一下DO2这个模式,其实就是增加了一个模式修正符S,加了S以后,那这个点呢,将能够匹配任意字符。
07:03
啊,匹配任意字符,这样呢,你在写正则的时候,特别是有很大间隙的时候,你像这样子,像这样子很多间隙,那你就可以直接点星,把这块内容就全部通配了,非常非常方便啊。好了,那这个小节我们就先到这儿。
我来说两句