00:00
Hello,大家好,这个小节呢,我们来介绍一下ES9里边的正则扩展,第一个命名捕获分组什么意思呢?在这一个意思就是我们可以呢,对啊,分组匹配的结果做一个命名,方便咱们对这个结果做一个处理,我来给大家演示一下。首先我先声明一个字符串,来一个A标签h ref,然后等于HTTP3啊3w.at硅谷点com。好,然后A标签闭合,在里边写上这个标签文本啊,上硅谷。OK,搞定。下面我们有一个需求是什么呢?就是我们想把这个字符串里边的h ref的URL以及标签文本提取出来。啊,提取URL与标签文本啊,这是我们的一个需求啊,那么我们该怎么去做呢?啊,如果没有这个命名捕获分组的功能的话,我们也可以做,只是嗯,这个使用起来的话,要通过数字来去,嗯,去做一个下标提取,是这样的一个情况,我来演示一下,好,首先我先声明一个正则cost RG等于一个,然后我们先来开头,Ah r EF就是正则,本来是匹配前面这一段,然后中间这块咱们来做一个通配,来个点星,好,然后闭合,后边呢,是A标签的一个闭合。
01:30
好,然后中间这块呢,还要再做一个通配,来个点型好了搞定,那么下边我们来做一个直行啊来一个。Cost result等于一个reg.ex ES tr看一下这个结果。保存好,那点开浏览器一起来看一看,刷新页面啊,不是这个啊,再来一个。好,然后把它打开,大家看下这个结果啊,然后此时呢,这个结果是一个数组啊,第零个元素呢,是整个这个正则匹配它的结果,而第一个元素呢,就下边唯一这个元素是我们小括号,第一个小括号匹配它的结果。
02:15
啊,就是由这个分组呢,匹配结果就是这个小括号啊,然后第二个元素下边为二这个元素,它指这个结果呢,是咱们第二个小括号匹配它的一个结果。啊,咱们把这个呢称为补货,就是我在写这个正则,同时还可以对里边的单个的或者某些数据做一个啊单独提取啊补货,那么现在的话,这个结果出来以后呢,我们想要提取URL和文本,其实很简单啊,来一个下标,一呢为URL,二呢为这个文本保存刷新页面。好,这是咱们当前的一个,呃,没有这个命名,捕获分组之前的一个处理好,我把它呢注掉,下边呢,我们来演示一下,有了分组之后啊,会是怎样一个情况,把它拿过来,正则呢也拿过来,拿过来之后我们需要在这啊加一个特殊的语法,就是问号中括号啊,所指间括号啊,间括号里边写一个命名。
03:17
来一个URL,它这个名字你可以自个儿去定啊,合法标识符就可以啊URL,然后呢,后边这块也是一样,来一个问号,然后两个这个监括号里边写一个,比如说我写一个text。啊,来个T。好了,那完成之后呢,咱们来看看这个结果啊,Cost result等于一个reg.exesr cons log result保存,看一个结果,点开它,那么你发现012呢,它依然还在,但是呢,这里多了一个groups。同说刚才也有,刚才那个刚刚才那个的话,他没有哈,有这个属性,但是没有这个值,我来给他演示一下看这。
04:01
啊,我把这个给它去一去。哎,上面这个呢,把下边去掉。嗯,来看一下,切过来点开看这啊,Groups是一个什么呀?UnDeFined啊,是一个unDeFined,而现在的话,我们把它下边这个打开,你再看一眼。做一下对比,切过来点开,你瞅一眼groups的话就有了text和URL,这样一来我们提取啊补货的数据就会更加的方便啊,而且也更加的以后便于维护,为什么这么说呢?因为以后可能这个正则规则可能要去变化。啊,可能还要再去提取中间的某一个属性,这样一来你的数字下标就会发生变化,你代码里边就要做出调整,但是如果你要用命名的话啊,用一个别名去提取,那这个时候即便说结构变了,我们这也代码也不用多动是吧,只需要再加一个啊命名就可以了。
05:01
啊,这是啊,ES9里边对政策的一个扩展,就是命名捕获分组。就是对补货结果呢,添加一个属性,方便咱们去提取。啊,当然我们这演示一下,来一个groups点啊URL,再来一个就是text保存,切过来看结果,上边ul,下边是文本,好,这个小节我们就先到这儿。
我来说两句