00:00
Hello,各位小伙伴,那么在这节课呢,我们重点呢,给大家去再讲解一下关于我们Python当中的正能表达数的这个规则的定义哈,啊,我们了解了几个函数以后啊,我们就可以去定义规则,嗯,那么我们来看一下哈,去新建一个新的脚本,那我们来讲一讲它这个规则啊都由什么组成啊,如何去定义,我们在这里呢?创建我们第四个脚本啊,第四个本叫正则角二一模块2E模块啊,然后正则表达式表达式。呃,定义啊,定义和规则啊,规则啊,当然这个呢,可能已经有小伙伴,比如说如果你接触过其他语言,或者说你在之前已经,呃对咱们Python当中的这个政策拈的这个内容呢,已经比较熟悉和了解的话呢,那这个其实就没有太大必要,就是再来听了,那如果说你可能时间比较长,呃,或者说就是已经对这个内容呢,可能过去好久了,那么这个时候呢,你也可以当做复习一下好吧,呃,那么如果没有学过的小伙伴呢,就是没有了解过的小小伙伴呢,那么希望在这节课听完以后呢,大家把这个内容呢,好好的做一个练练习,那这样的话呢,我们的正则表达式,你把这个学好以后呢,那未来你在使用其他语言的时候呢,这个正则表达式也是一样使用的啊好,那我们来看一下啊,正则表达式,正则表达式的这个规则定义,规则定义那么它是这样的哈,首先正德俩是由什么组成的,我们之前给大家讲过,就是正德俩式呢,它是由我们的这个叫呃,普通字符啊普通字符。
01:14
来我这这么写吧,嗯,在这里写啊呃,第一部分是有普通字符啊字符,普通字块啊通字符,然后第二个呢是转移字符,转移字符,然第三个呢,叫特殊字符啊叫特殊字符,第四特殊字符第最后一个呢,还有一个就是就是模式啊,就是正则的模式啊,模式叫正则模式啊模式啊好,那我们来挨个看一下啊,不通字符怎么去定义啊,怎么去使用啊,来我们这里呢,假设我们定义一个字块R啊S等于我们的一个I love u啊L,好,那么这个时候呢,我们要定义一个正则的时候,叫re等于我们的一个字和的等于一个等于这样的一个规则,那么这样的一个规则定义完成以后呢,我们想,比如说我们想从这个里边提取这个love这个值,那么这样的话,我就可以直接呃写一个love,那这样这个LA的话,就是我们的普通字符对不对,那么这个时候呢,我们可以呃使用我们的res,等于我们re模块点上那个叫诶,Sorry re模块没有导入啊import re模块啊导入。
02:04
然后导入以后使用我们re模块的,比如说那个设置吧,啊设置方法,然后呢,去调我们当前的这个叫做reg的规则,然后呢,把YSTR啊啊YS啊这个中号给他之后呢,我们去调用它那个叫group的方法,那么呃,然后呢就能打应它当前的一个结果,对不对?来看一下右键运行我们当前的脚本专利,好,那大家来看看,我就从R当中呢,去提取到了love这个字符,这是普通字符,那么普通字符呢,你可以写字符串啊,加号减号这些都可以,就是直接它没有任何意义,就是一个普通的字符,这是它的一个使用啊,任何这种表达方式都可以使用啊,普通字符,所以这个呢,我就不过多的介绍,就是只是给大家演示一下,那么接下来呢,我们重点看一下转移字符,转移字符啊,主要有杠W,杠大W-D杠大D啊,还有杠S和杠大S啊,基本上就这么多啊,那么当然它还有很多其他的啊,基本上你掌握这些的话,就足够我们的一个使用了啊,那我们来看一下哈,比如说同样的在这个位置定一个YSTR,那等于我们刚才的一个字符号,那么中间呢,比如说这位置。
03:03
啊,这里的来一个521对不对,好,是这样的哈,那么如果我们想匹配这个当中的数字,那么这个时候我们怎么办呢?我们当然可以写上521对吧?但是如果不确定它中间的数字是什么内容的话,那我们就可以用正个表的这个转移字符来定义啊re EG等于我们当前的一个符号,那么这里边呢,写一个杠,这个杠W啊,杠D啊杠D-D呢,代表的是一个数字啊,代表的是是一个数字,那res,我们当前的啊,Re调用我们的设置方法啊,然后把reg传进去,把我们当前的RSTR传过去,然后呢,再调用一下它的那个group谱方法啊,这样的话我们就能得到结果对不对?来RS啊,看一下当前的结果,那么这个时候呢,它会从我们当前这个里边呢,提取一个字符啊,就一个五对不对啊,一个数字啊,啊一个五,嗯,它只能提取一个,也就说它匹配到错误就结束了啊好,那么我们看一下啊呃,先来一个杠W给大家看一下啊,来运行它俩,它提取到第一个字符是哎,也就是说如果这个地方假设有一个下划限来运行它的脚本可以吗?啊,它也能提取到对吧?那么如果有一个呃,比如说特殊符号装了符,那它能不能提取到呢?来运行脚本啊,它提取到呢,也是I,也就是说这个。
04:03
这个方法会从头到尾去匹配你的内容,那么匹配到结,匹配到成功的内容以后呢,就返回了,所以这个位置呢,你写了一个杠W,它代表的是什么东西呢?啊,杠W代表代表单个字符啊,单个的字母啊字母,然后呢,还能代表呃单个的字母啊,我们看一下。单个的字母数字啊数字,然后呢,还有下划线啊,下划线这都可以,也就是说如果前面是一个数字,比如说这个位置来一个二,那么运行当前的脚本看一下它是不是也能匹配到啊,也就是说字母数字下划线,但是注意啊,它只能代表单个啊,单个字母数字下划线这样的一个符号,好,那么如果是放大W呢,来看一下啊,如果把这个换成放大W杠大W来运行我们刚才的脚本,它是一个非啊,叫代表就正好是取反的意思啊,是代表代表非。代表单个啊单个单个的非啊非什么呢?非字母数字下就是除了字母数字下线以外,其他都可以代表啊非字母数字下线啊,那这样的话,它这个到了弧是不是就能匹配到啊,就这样一个效果啊,就只要不是字母数字下划线,它都可以匹配到啊啊那么reg等于我们当前的一个杠,刚才的一个一个杠D,那么这个杠D呢,代表的一个是一个数字类型啊,代表单个的数字,代表单个啊数字啊数字单个的数字啊就就是一个数字,所以在这个匹配过程当中呢,它能匹配到二好那么呃,如果是杠大D呢,大家应该能想到,其实杠大D就是一个反过来的对吧?杠大D我们看一下杠大D就是代表哎,代表单个单个的C数字,只要不是数字都可以来运行我们脚本看一下啊,只要不是数字都行,那你看这个导符也不是数字嘛啊,所以他也能够啊匹配到这个内容啊匹配到这个内容好这是这是当前的这个,呃,叫什么杠大D对吧?那么之后呢,还有杠S对吧?来看下我们杠S啊呃,首先看我们的小S,小S是什么呢?小S是大S的解决对吧?啊来看一下啊,代表单个A代表啊。
05:55
单个单个的啊。
06:00
单个的什么呢?来看一下页面总体运行,它没有匹配到任何内容,就是在这个里边呢,它没有匹配到,那么这个时候呢,如果写一个空格来运行当前脚本,那匹配到了吗?匹配到了是一个空格啊,就你显示不出来,它只能代表单个的空格,空格空格符,空格符啊,那么能不能比如说是一个字表符呢?一个table部键,一个table部变啊table步键来看一下运行当前脚本。看不出来是吧?看不出来,我把前面的去掉,运行脚本中间你是看不出来的啊,看不出来这个内容在这个看不出来,嗯,但是我们看看怎么办呢?诶,我可以去看这个字号长度对吧?R音逗号逗号R音括号看一下RS的结果,运行脚本中你看这啊是一个字符对不对,一个字符它只能匹配到一个我们的字表符看一下啊,我输入一个字表符看一下。在在这个沙边编辑工具里边啊,我输入了一个字表,注意啊,这是一个符号,一个符号,它跟我们四个空格的长度是一样的,但它是一个字表符,我们把这个内容呢。复制一下,然后放到我们这个里边来。对呀,复制不过来是吗?来运行脚本。可以吗?可以啊,只不过它这个长度不对啊,这个长度不对,你看这个长度它也是一个符号,但是它已经很明显比刚才那个是有区别的,对吧?啊,所以这个是叫做制表符啊,这个叫做制表符啊啊单个的空格符或制表符或或。
07:13
字表字表符。好这个啊好,那么大S是什么呢?小S啊,小S是刚才的说说的这个叫什么?呃,单个的这个空格符或或这个叫字表符对吧?那么大S什么呢?大S就是小S的解决什么代表单个的哎,单单个单个的非啊非空格符或制表符,只要不是空格符或指表符,那它都可以来运行当前的走你啊第一个2SV符合要求啊,一个二也符合要求,那如果写一个A字母A来运行,当你角你是不是也OK也OK啊好,这就是我们当前的这个转移字符里边常用的啊常规的几个那么。你双文说了,那那那如果我要匹配一个连续的四个字符,那这个时候怎么拿,哎,你就可以这么写啊,来这么写啊,这么写杠W-W-W你看一个杠WW一个字字母对不对,那我连续写四个杠W呢,那就是四个字符啊四个呃字母数字下文键,好那么来看一下页面,总你看着它要取到连续的四个,嗯。
08:08
Sorry,应该是IG啊,定义是res啊来运行当前专门做你判断好来下游线IRO啊,这是四个字符吧,啊四个字符啊,那就连续的取到四个好,那么呃,还有比如说我想取到那个,呃想取到前面是连续的四个字符,后边是一个是一个什么是一个那个数字的啊是一个数字的,那么这种情况下就是前面是四个字母四个字符啊字母数字下面呀,我们还不能用这个是吧,字母数字下面来运行同们看一下。哎,看这LOVE5,因为前面是四个连续的字母数字,数字下限对不对,最后一个明确了是一个数字,所以这个时候只有LOVE5是不符合要求啊,LOVE5符合要求啊,所以这样的话就可以组合使用,哎组合这个叫组合使用,组合使用好,这是我们当前的呃正能量式当中的转移字符啊,它的它的这个效果和特点啊呃,小伙伴们把这个内容应该能掌握吧,好那么完事以后啊,这样我们再来看另外一个内容,就是关于啊叫做正啊,这个叫特殊字符,特殊字符有哪些呢?有点点啊,小写的点啊点星呃加号问号啊,然后呢,中括号,呃这个这个大括号,中括号还有小括号以及意思开始和意思结束啊就到了,呃到了符了,到了符啊就代表结束啊,然后那我们来看一下这样的一个符号啊,我重新定义个这个忘S点啊好,我在这里呢,写一个,呃,随便写一个内容,呃,Hello her her hello hello。
09:24
Word word RV啊,Word,然后呢,I love6啊然后呢,呃,中间再来个数字是吧?啊5211好了,就这样的一个字串啊定义完成以后呢,我们来看一下啊呃,看一下这个字符串,如果我在这里的写一个点,它代表什么意思啊,来看一下reg等于我们当前一个点一个点啊来看一下结果运行当前的脚本总体,看看一个点一个点一个H是不是可以啊哎,那如果它前面是个空格呢?来运行当前的脚本总体是不是也匹配到了,那如果是一个特殊符号呢,比如说那个呃,是一个井号吧,啊它能不能找到呢?也可以,也就是说一个当前的这个叫点,它代表的是任意字符,任就随便哪一个字符它都可以啊,那随便哪一个字符都可以,所以这个叫做代表任意字符啊,来看一下,注意一个点点。
10:07
来前面写一个点啊,写一个点点代表代表单个的啊,单单个的啊任意啊任意字符,任意字符除了除了谁除了换行符之外,换行符字外,就是除了是一个换行符,那其他都可以,那比如说一个是杠N斜杠N是一个换行来运行当中转们总体看看,它只能匹配到H,这个杠N就匹配到,匹配不到了,就是除了换行符之外啊,其他都可以匹配到啊,这是当前的一个特点啊,当前特点好,那么呃,这是点啊,那么如果是星号啊星号,那我们来看一下运行大建脚本走,你看这IG啊,星号无法使用啊。那我写一个点吧,写一个点心,点心你来看一下点心的结果,诶,点心的结果是零。啊,我把这个干掉,把这个干掉,把前边杠干掉,那你看看诶,这效果就出来了哈,就是五,如果我写个点星,前面这个字符里边第一个就符合要求,然后一直往后是不符合要求了,好注意哈,如果第一个就不合要求,那你注意看它一个匹配到,所以这个点星代表什么意思啊,它是代代表这个匹配次数啊点星。
11:08
星啊是代表匹配次数,代表匹配匹配次数次数这个次数是多少呢?是任意次,任意次数,任意次数啊,什么意思啊,就说。举个例子啊,举个例子,我我我要在这里写一个杠W,那么注意,那么这个杠W代表一个字母,数字或三个线,对不对,好那么呃,星号是什么呢?星号是任意次,也就是说第一个它会呃,就是你找不到也行,找到也可以啊来看一下哈,如果一个杠W在这么一个匹配的词号了啊,它是一个啊,这个叫字母对不对啊字母好,然后呢,加上一个星号以后,加上一个星号以后就是他如果能匹配到,那么之后在他再会去找还有没有,还有没有,还有没有,还有没有一直往后匹配,那么直到不符合要求,所以这个结果呢,他匹配的结果应该就是一个hello,看到吗?是五个字符的一个哈,因为杠W不能代表空格对不对,不能代表空格,好,那么这个时候它匹配的是一个字符,但是如果一开始是一个空格,注意看,如果一开始是一个空格,它直接返回了一个零,这原来是匹配到,匹配不到的话会报错,但是这个时候呢,没有报错,就是就是空的什么都没有,没有拿到,这是怎么回事呢?就说这个星的作用,因为它是任意次,包括零次啊,包括零次是这样的。
12:11
我们举个例子啊,假设有一个房间,呃,比如说我们上学期间吧,上学期间我们都是坐在房间里,然后呃,好多同学对不对,然后男女都有好举个例子啊,举个例子假设啊,假设老师让这个叫让正则这个同学去班里啊,去给我找一下女生,然后把女生全都叫出来啊举个例子啊,举个例子好,那么这个正则是谁呢?这个正则假设啊是一个,就是它后边呢,有一个星号,那就是这样的。他走到门口,他先从第一个位置开始找,对不对,肯定从打开门口之后,第一个位的,第一个位置如果是女生,那么他之后再去找,他后边还有没有女生啊,如果第二个也是女生,再找第三个是不是女生,如果第三个是女生,好,再找第四个是不是女生,就一直往后,那么注意这样的结果哈,所以他找到什么时候了,比如说第四个不是女生了,那就把前面的三个女生全部都叫出来,明白这意思吗?啊,这个是不是完成他的任务了,对不对啊,就这个正则这个同学他就完成任务啊,但是如果是这样的,他推门进去之后,第一个座位上就是一个男生。
13:05
就是一个男生啊,他就不再往后找了,因为什么呢?找到找不到都符合要求,就他的任务完成啊,完成按找到找不到都行,因为他就代表任意次数,那零次是不是也是一个数,对不对,零次也是数,所以他找到第一个,哎呀是个男生,好了,再见,往后不问了,他就走了啊,就让一个效果啊,所以就是刚这个星代表匹配的次数是任意次,他如果一开始匹配到了,那么就会一直连续的按照你的规则往后匹配,直到不成功,那就返回,如果一开始就匹配不到,那就结束了啊,所以他特点啊,我们这里来描述一下它的特点啊,就是如果如果使用了星,使用了星号,星号啊,那么那么在匹配的,那么在匹配时匹配,那么在匹配的开始开始处,开始处如果符合,如果符合。要求啊,开始处如果符合要求,则则按照按照规则,按照规则一直一直向后匹配,向后匹配啊匹配直到啊直到直到什么呢?直到啊,这个不符合不符。
14:07
不符合啊,匹配规则,匹配规则结束啊结束结束并返回并返回并返回啊好,这个特点我写在上面。啊,这个信号的特点啊,好,呃,我把它写了,往下走啊,往下走啊,这是信号的特点啊,他说如果啊,如果使用了。这里写成这种注射啊,写成这种注释,我们可以换行写啊,对这样的话我们看的清楚一下啊,他说如果啊,如果使用星号,那么在匹配的开始处,如果佛要九,则按照规则一直向后匹配,直到不符合匹配规则结束,并把并把符合并把前面前面符合的的数据返回的数据回。好是这样的哈,那么如果在一开始,如果使用星号。另外一个特点啊,对。如果使用星号,那么在匹配的开始处就不嗯。知道吗?如果如果在匹配的开始处就不符合要求,就不符合要求则直接则直接回直接返回,直接返回啊匹配到的次数为零,匹配到的次数为零啊为零啊就是因为为零也正确啊,V0也正确,这就是我们当前一个星号啊,这个匹配的一个特点,它就代表着当前的一个匹配次数啊好,那我们来看再看另外一个啊re,等于我们当前的一个杠W用加号用加号啊啊来看一看加号加号呃杠W的话呢,是一个单个的字符,呃单个的字母数字下面对不对?好空格肯定不符合要求对不对啊然后呢,它之后它会匹配到H,你如果用星的话,H her,然后一直到遇到下一个空格之前对吧?好,那如果用我们当前的这个叫呃加号呢,来看一下结果,总体运行啊看。
15:46
啊看这位置它是这样的,它是至少要匹配一次,至少要匹配一次啊,比如说啊,比如说一开始他不符合要求啊,那么他就会往后走,往后走啊,他是至少要匹配一次,那如果有多的呢,也行啊也行,加号代表也是代表匹配匹配次数次数啊呃,至少至少匹配一次,至少要求匹配一次,匹配一次,如果一开始啊不合适,那么他就继续往后找,直接找到有合适的位置,那么注意哈,如果这个也不合适。
16:16
如果这个啊,它就这样的话,它就返回到一个H,看到了吗?啊一个H,那么如果写两个加号呢,写两个加号来运行当前转们中中啊这个啊写两个加号就不行啊,不能这样使用,对,那写一个加号可以吗?啊,也就是说你看如果是星号的话,他还你看我把这个住掉,如果是星号的话,他走到这是不是就回去了,因为他说嗯,不符合手就回来了,对不对,但如果是加号的话,他要往后找啊,往后找那这个特点呢,就是说,比如说用加号这个正德同学,按照我们刚才的任务啊,这个老师呢,呃,加号这个正德同学呢,去我们的这个啊教室里面去找这个女生,那什么特点呢?是这样的,他进去以后,如果发现第一个是女生,他就往后问第二个是不是女生,如果再往后第三个是不女生,如果第四个不是女生了,好把第前面的那三个给返回,对不对啊,返回他是这是不是完成了,好那么身上这是第一种情况,那么如果他进去以后,第一个是男生,那他再问第二个是是不是男生,如果第二还是男生,再问第三个是不是女生,如果第三个是女生,好了,再往后问,从这个女生开始,往后再问是不还还是女生,如果还是女生,继续往后匹配啊,继续往后匹配,如果知道什么遇到下一个男生之前,把前面这这。
17:17
几个女生,然后给带回来啊,这就是呃加号的这么一个特点啊,所以星号和加号之间都是代表匹配次数,但是零,呃这个星是代表呃任意次数,就零也符合要求,那么加号呢,是至少要要求匹配一次,要求匹配一次啊,就是至少有一个,当然了,如果在这个过程当中没有任何一个符合要求的,那那就是最后失败的,没有匹配到结果啊,最后就失败任务啊就这样的一个特点啊好,这是我们当前的一个加号啊,加号好,那么接下来再看这个叫再看什么呢?再看这个叫叫问号啊问号好,那我们看一下啊,比如说如果用我用这个叫用杠W啊杠W-W嗯,然后加啊匹配的时候呢,它至少要匹配一次,那么最后的结果,现在的结果它是匹配了五个字符出来,对不对,五个字母好,现在如果加一个问号,注意啊,问号叫做拒绝,他婪叫做拒绝,问号啊问号叫做拒绝。
18:04
拒绝他了,拒绝他了。看了什么意思呢?就是前面就是前面的匹配规则,匹配规则只要只要达成。嗯,达成则直接返回,则返回则返回啊,只要达成了就可以,只要达成要求啊,只要达成你的需求啊,来看一下啊,一个杠W和加号放在一起,它能匹配到五个哈,因为到后面的话,它就不符合要求了,对不对,好,那么如果是加上一个问号是这样的哈,因为它要求这个加号是至少匹配一次一个字母数字下划线对不对,好一个,那这样的话,他只能拿回来一个A次,看看只能拿回来一个一次,这是什么特点呢?就是说他在这个时候呢,拿着杠W去匹配啊,第一个不符合要求好,他完成任务的没有,他至少要匹配一个对不对,所以他们第二个符合要求嘛,第二个是H符合要求好了,符合要求之后,原本如果没有问号,他还要继续往后问的,但现在这个后边有一个人告诉他,诶,你已经符合要求了,走吧,啊,那这个时候他就直接拿出来一个H就结束了,好就这样的一个效果哈,好那么但是注意啊。
19:01
如果同样的同样的reg等于我们刚才的杠W啊杠W点问号点问号啊不不不是星问号星问号,那么注意看啊注意看,嗯,现在看现在看我用杠W星能匹配到结果吗?现在的结果情况是它如果第一个不符合要求就匹配播到了对吧?好但是如果第一个第一个啊就符合要求,它会连续的匹配出来那五个对不对,来适当的效果吧,好现在这样的哈,我在这个时候呢,加一个问号来运行到你走总你上哪零。第一个就符合要求,这个时候呢,结果匹配了一个零,匹配零,这是什么特点呢?是这样的哈,这跟前面的这个问号,前面这个符号有关系啊,加号是不是要求至少匹配一个对不对,他从头找到尾就是满教室啊,满教室找他就是找到一个他也得回来,对吧?当然最后如果都没有,都是男生,那他那他怎么办?他他就是任务失败了,明白我意思吧,好,现在是这个特点在呢,就是这个老师呢,让正则让加号这个同学去做匹配,说找女生对不对,然后同时不放心啊,不放心说怕他这个人呢贪玩,于是又又指派了一个问号同学去跟着他告,让问号同学告诉他说,如果这个加号同学条件达成了,就让他回来好,那这种情况下,就是这个加号先会到我们教室里面先问。
20:11
第一个同学你是不是女生不是是吧,不是好,那再问第二个女生是不是女生,第二个如果是好,她她这个本来还想再问后边的对吧,但是旁边那个问号同学一看呀,你的任务就是完成至少一次,好,你现在完成了,那跟我走吧,那他们就回去了,所以加问号的结果就匹配了一个一次回来,对不对?好,那么注意星问号,星问号在哪?星这个同学他是什么呢?他是任意次,只要完成,完不成都行,对不对?好,同样的任务,同样的老师让星号去做匹配,然后加问号同学让他啊,告诉他说只要完成就行了,好,那这个时候呢,他们俩边走边聊,走到教室门口的时候,走到教室门口的时候,孟浩同学说,你的任务是什么啊,这个新老说啊,老师让我来找到女生,找到找不到都行,找到找不到都行,就是任意触动啊,找到找不到都行,好那方同学,那咱们别找了,走到门口连进都没进去,直接就返回了啊,你看即便前面没有空制的情况下,他返回就果依然是零啊,这就是它的一个特点啊,它的一个特点啊,对,所以大家啊,对这个问号啊,问号加号星号啊,这个特点呢啊,一定要有有有有一个明确的了解啊,明确了解好,也就是说问号问号的特点呢。
21:11
就是拒绝你贪婪,你只要完成功能就直接返回了,只要你前面的这个规则啊,只要达成了啊任务要求,那咱就直接走啊,就所以这个问号这个特点啊好吧,这个是我们当前的一个问号一个操作啊好,那问号完事以后呢,还有这个叫呃这个叫什么叫这个画块对吧?哎画框,想想画块是什么呢?适当的啊呃,比如说我们先写一个,先写一个杠W-W-W呢是一个字母数字或下片,它只能代表一个对吧,比如说如果要连续的匹配四个注串,那这个时候什么呢?哎,你在里边写个四,写个四来运行结果来,它是匹配字符串的次数,就是前面匹配的次数,也是划符号代表也是代表代表匹配次次数匹配次数啊然后呢,呃,如果我这么写这么写,写一个数字啊,那就代表匹配啊,写一个数字,一个数字,一个数字是。
22:03
代表代表必须,代表必须匹配到次代表啊表示必须啊必须匹配啊匹配的次数,必须匹配的时候,就你必须匹配40,你也可以写14啊,也可以写十,也可以写多少都行,这是反正就要求是一个数字嘛,对不对啊,那如果写个五,那它返回结果就是五个,那个叫啊五个连续的字符,对啊,如果写个六,来看一下结果啊啊哎,那我啊这个也符合是吧?啊来来,那如果写个十,应该没有符合要求的吧。必须匹配十个,他没有啊,没有就报错了,没有直接报错啊,报错是因为什么?报错是因为我们调用格谱啊,如果不调用格户的话是没有问题的啊啊,那我们看一下前面那位的啊,如果他匹配五个,那没问题,前面的前面那个符合要求的话,它直接返回了啊,就那一个呃,概念啊,当然了,它除了占用以外呢,他还可以占用啊,还可以占用就你可以写两个数字,就是写个五逗号15逗号十来运行当中结果走你。诶,前面这个符号写错了啊。我说呢,怎么会报错呢,来五号时或者这样吧,二逗号。
23:01
五。二逗号五,那就代表至少匹配二到五次,代表匹配字数,二逗号五逗号五啊啊两个数字时,两个两个数字时表示匹配的,必须匹配的,匹配的什么?区间次数,区间次数就是二次到五次,至少要两次,最多五次,就这样那个效果你看如果我写个四,那就它匹配的是ER回来了啊,最大的一个效果啊这样一个效果啊啊这是代表一个匹配次数,这是当前的一个花括号,那么划括号完事以后呢,就还有一个叫中号啊中号中号代表什么呢?代表一个范围,区间也是代表一个范围啊,但是它是这样的,它这样的,它代表你可以写一个A到Z,那表示什么呢?表示一个小写的字母A到Z来运行当前结果重力啊H是否符合要求,但是如果我写一个写一个大A到大ZA到Z啊,大A到Z大Z,它没有这个找到符合要求的数据,看到了吧,啊,当然我可以把这个,嗯。WOR。RD RD w word啊word给改一下,来看一下,它是这个时候大概是个符合要求啊,那么是这样的,呃,如果是我可以这么写哈,写A到Z,然后啊零到九,然后再加一个下限,好那么注意下啊,这个规则就是一个大杠W,就是杠W是不是就是大小写字母对不对,字母数字加下限对不对,所以它就是一个杠W来看S是不是就符合要求,也就是说它这里边的范围区间的任何一个就就可以了啊,就是中号代表,中括号代表。
24:26
代表范围,代表字符的范围,字符的范围啊范围啊,那么这个时候呢,你你你你这个啊,如果这么写的话,就等同于啊,这么写就等同于一个杠W来CRC。啊。等于啊W对吧,W好,这是当前的一个正能两四啊中号中的一个特点啊,一个特点好,那么除了中号以外,还有一个小号啊小号呃,小号我们来看一下啊呃,我把这个规这个字块呢,稍微调整一下,稍微停下。我看一下怎么去调整呢?嗯。哎呀,怎么怎么确保,比如说我要一个。
25:06
我要这个内容啊,要这个内容来。那这种要I和5211,那就证明前面是字母数字,呃,数字下限不知道多位,但是我明确的知道后边是四位数字,但是是多少我不确定啊,我要这四位数字,那么先来看我如何匹配上那个规则啊,前面是字,连续的字母数字下面,然后边要求必须是四位数字,那就怎么写呢?来看这点啊,Reg等于啊,前面是字母数字下面是吧?好,那么杠W你知道多少不确定,但是它至少要求有一次对不对?好写一个加号,然后后面有连续的四位的数字对吧?好,杠B括号四。好,那看啊,二-W是单个字母数字加面,然后加号是至少有一次对不对?好,然后杠D是一个数字,然后呢,要求它至少有四位,那这个结果就能匹配到我们刚才所说的内容,看到了吗?好来这个12就是它的长度啊,然后把这个长度给干掉,干掉啊好来运行脚脚本啊从你看这是吧,I love521好,现在要求是这样的啊,假设它后边。后边还有一个啊,别有了,别有了啊,就这样,我我这个时候哈,不光要这个L5211,我还要其中的5211,也就是说我要求哈,整个字符串L加5211拿回来,我还要一次5211单独匹配一次,那这个时候怎么办呢?你看啊,整个字符串整个这个匹配规则是不是就符合要求,对吧?然后呢,你只不过在这个规则当中需要单独提取一下5211这个结果对吧?所以这个时候什么呢?你在这个符合要求的这个规则位置加一个小括号,加一个小括号,这个小括号代表什么呢?小括号代表子组,小括号代表子组代表组。
26:29
啊,资助。词组什么意思呢?就是小括号,括号中的,括号中的中的表达式,表达式首先首先首先和整个首先作为啊,作为整个表达式,整个表达式的啊,整个正则的正则的一部分一部分啊。对吧,首先它是作为整个正治的一部分,另外另外会把会把符合小括号,这个小括号中的内容中的内容单独单独提取分,单独这个叫提取一份提取分,好来我们看一下这个结果啊,来运行当你的结走你看看来love文允许允许创的传给你,这不是忽悠我的啊,来没忽悠你啊维护你,为什么呢?因为我们当前这个group的原因,我们当前在这里调用的是group group是只能获取到第一个或或者说你写零是一个特点啊,但是呢,它不光有这一个,它还有很多个啊很多个,那这个时候怎么办呢?诶我们在上面呢,是首先在这里呢,去看咱们全局的数据,那就是re.group它正常返回的数据,对吧?好,然后再来看res.groupss这个是有这个方法啊,来运行当前的本来注意看,注意看,注意看括号当中的内容是不是单独给你存放到一个内容存放出来是不是5211521对吧,好然后呢,你还可以这么想,还可以这么写假设。
27:43
假设后边还有一个I missyou I missyou,那我把再改一改啊来后边后边还有一个杠W加号对吧?哎,我把后边杠W加号的内容呢,也也给你括起来来,注意看运行结果走,你看看看看这是不是两个内容啊,也就是说LL和211MU这个是整体的匹配规则,是不是匹配到了,然后同时把你两个小块的内容给你放到我们的元组当中,形成一个元素来给你返馈看到吗?小括号的内容,那么呃,第一个小括号就是呃元组当中第一个元素,那么第二个小括号就是我们原组当中第二个啊内容,那如果是第三个呢,比如说我把这个整个再括一个,再括一个来括号月习标本走,你看这看这。
28:19
看否要是吧,这是整体的第一个大括号,然后之后里边有两个括号对吧,哎,123是不是都可以啊,都可以啊好,这是我们当前的一个操作啊,当前呃,这个小括号,小括号呢是直组在我们。未来用正则去做盘龙的时候,小括号啊使用非常好用,非常好用啊好了,呃,这是我们刚前的小括号,那么之后还有什么。啊之后还有限制开始和结尾啊,是这样的哈,这样的现在开始结尾呢,我们单独说一下啊,比如说我这里边要求那个用户写了一个,写了一个他的手机号,我随便写一个啊,比如说17610195211啊,随便写一个啊,这样的一个,这样的一个,这个叫。10101081010啊呃,比如说这样的一个手机号,我来匹配一下手机号的规则,来定义一个手机号的规则,大家来想一想啊,定义一个正则表达式的规则,规则啊啊是什么呢?啊,定义一个手机号吧,匹配手机号的正则。
29:13
正德百化师啊大大家去琢一下啊,我应该如何把这个正德表师定一下啊,是这样的,而G等于我们的一个,首先很简单,手机号我们国内啊,我们是只说国内的,国内的手机号就是11位对不对,绝对啊,我在这里杠D啊,我们不匹配那么严格要求哈,就是杠D11位行不行,可以吧,手机号就十位对不对,我还不不敢问他,它是前面是二开头,几开头我不管,我就是说它是11位的好,那么符合符合要求呢?来运行结果看这17610105211是不符合要求,好,但是是这样吗?如果它前面加了个21。整个长度不对了吧,这不是一个完整的手机号吧,至少不符合我们手机号的一个长度了吧?好,那么你来运行一下结果,看这结果。匹配到了吗?匹配到了哎,这个时候是什么呢?是因为你当前这个规则,规则拿过来以后,他是从这个位置开始匹配,就找连续的11位,后边多了少了他不管,多了少了他不管好,那么我们这个时候可以怎么呢?限制开始,限制结尾。
30:07
现在结尾,并且呢,我要求它第一个数是从一开头的来,这样就是第一个字,呃,字符是一,然后之后呢,是连续的十个数字。这种情况下,我认为它是一个呃,这个手机号,然后呢,前面我加了一个意字符,这个前面的第一个符号来注意说说一下啊,前面的这个符号代表代表开,代表开头开头啊,然后呢,呃,这个符号代表结尾。嗯,代表结尾,代表结尾结尾也就是说啊,是这样的,你开头开头必须是个一结尾,反正得是一个数字啊,就这样的一过程来运行,当教们中,你看那它还符合要求吗?不符合了对吧,就报错了,但是我把那个前边21给干掉,看这符合要求吗?符合要求啊,也就是说这个代表开头和代表结尾是匹配,整个就是把整个字符串当成你的规则,然后进行匹配,看它是不是完全符合你的个要求啊,这是限制开始和结尾啊,一般来讲就是做这种手机号的匹配啊,邮箱的匹配啊等等这样的规则的时候,我们才会啊,才会去使用啊对,好了,那么这里呢,给大家留一个链体啊,就是定义一个正达式,定义一个正则,正则表达式,表达式来匹配,来验证啊,来验证邮箱是否正确。
31:16
邮箱,邮箱。邮箱是否正确正啊然后呢,呃,第二个第二个作业就是完善啊,完善这个叫什么呢。完善这个手机号的手机号的正则表示,正则表表示啊,这是一个练习作业啊,这练习作业啊,希望大家呢,能够把这个内容呢好好的做一个呃练习好吧,啊就这两个练习题啊,大家把它完成就可以了,这是第一个,这是第一二个好了,呃,这是一个练习,就是我们基本上就是呃,掌握了这么多的内容以后,就是主要是转移字符代表什么意思,然后加上特殊字符,其实这表是你大家注意看正个表式,就是把这些普通字符,转移字符和特殊组符放到一起,形成一个组合,形成一个规则,然后呢,去匹配符合你要求的内容啊和数据啊,来检测它的结果是不是正确啊,就这么简单,就这么简单啊好了,那么之后还有一个叫做正则的模式,对不对啊,正则的模式啊,那我们来这里说一下吧,啊,这里简单提一下啊提一下。
32:09
就写一个就行啊,写一个就行,这个正轴的模式是这样的哈,就是我们假设在这里啊,刚才这个字块啊,V vars,对吧,VR是等于我们当前的一个字符块啊,等于一个I love u,好,那么这样的一个字符块,我们要用字母的表达式匹配它是不是一个啊,这个叫啊是不是由字母数字下面啊来组成的,那么这个时候啊,杠W啊嗯,这样吧,我写一个A到Z可以吧,A到Z,然后呢,写一个呃,加号。有个加号,至少有一位对不对啊,至少一位好,那么这个时候啊,注意看我在下边呢,Print用这个res等于我们当前的reg点上这个叫设置方法吧,啊每哪个方法都行,Erar,对啊用re模块,我说的都不对,Erarerar好,然后呢,把reg放进来,把我们当前的YS放进来,对不对,那么之后呢,我们可以看当前的RS的结果运行掉,我们看一下啊对,它是不是匹配到了L对不对,L匹配到了啊好,但是这样的如果中间。
33:08
有一个大写的,那来运行脚本,它是不是只匹配了一个一个对不对?好,我要求它是一个什么呢?比如说嗯,要求是一个五到十位的这样的一个符号啊,来运行当脚本看这,诶五到十是我没有匹配到,呃符合要求了,但是如果它是小写就符合要求了,来运行脚本看这是不是就符合要求了L啊好,就这样的一个效果啊好,那现在是这样的,如果这里边其中包含大写的话,诶它就错误了,对不对,就是错误了,那这个时候按的A,我们定义的是规则是只限于它当前是一个什么?哎,它当前是一个小写的字母,数字加位,然后匹配连续的五到十个,是不是这样的规则好,但是很明显它匹配不到,因为什么呢?我们的字块里边有大写,有大写,那么这个时候我们可以通过一个叫什么,一个正则表达式的模式来定义啊,来去限制它匹配的时候不区分大小写,来我们去找一下啊,在我们当前的这个叫。啊,这个啊,在我们当前的这个工具里边,我们去找一下啊。
34:01
来R1.i看到吗?R1.i好,也就是说我们在这个地方啊,传一个R点二好,传一个R1.i,这个R1.i就属于我们的一个模式,它叫做不区分,不区分不区分大小写大小写大小写好来看一下结果运行角本,那么这回能不能拿到,拿到这个re.i就是我们的一个模式啊,就是一个模式,那么至于它的模式还有很多,比如说比如说刚才看到了一个A对不对。阿格玛啊,然后第B个啊,第B个我们几乎用到啊,然后R啊是什么模式,然后M是什么模式,然后S什么模式,叉是什么模式,这里边有很多啊,基本上就这这这么几个模式就可以了啊大家呢,剩下的我就给你讲一个,因为我们并不是常用啊,所以讲一个你知道,然后呢,剩下的就是文档里边都有哪些,你可以自己去做一个实验啊,看一看,多做个练习就可以了啊,这是对我们正则表示一个模式啊好了,呃,那这样的话,这节课呢,内容还是挺多的啊呃,主要呢还是看嗯,怕大家呢把这个正则掌握不好,那么其实正则看起来也没有多复杂了,对不对啊,大家呢,再经过这两个练习题啊来做一做,当然这个练习题可能有点简单是吧,来,我再给你出一个稍微难点的啊来定义定义,诶不让不让出作业吗?这个好定义一个怎么样匹配IP的正则。
35:17
正表达式,正则表达式啊,这个表达式呢,你定义好以后,你来看一下,你去换几个IP,看一看它是否符合要求,IP的效果来知吧,192.168.1.1是这样的一个规则,这这个是符合要求啊,那这正在这个普通IP里边,普通IP里边首先每一个数这个数是不能超过255的,对不对,不能超过255啊,然后呢,如,而且如果一般来讲呢,第一个是255的话,那我们后边是二五五点二五五点二五五两个零,也就是说如果前面三个是255,后边是一个零啊,所以正则这个IP的规则还是比较多的啊,通过这三个练习题,如果你能用正则两它设啊,把它写好,并且你自己检验一下没有问题的话,那我觉得你的正则练就的没有问题啊,没有问题,基本上去面试的时候,基本上也就这样的规则啊,啊去面试的过程当中啊,也就考你这三个练题,基本上就这样差不多啊,那这样的话,希望各位小伙伴能把咱们这个正则把试的规则呢,好好的做一个练习,那这样下节课呢,我们就呃后面的课程呢,就带大家使用我们的正则表达式去匹配一些啊,看如何在我们爬虫当中去使用正则表达式来解析我们想要的一些数据啊,把它排序下来好了那。
36:17
各位小伙伴,那我们这节课就到这里啊,希望各位小伙伴呢,能在课上把这个内容呢好好的练习一下啊,把我们这个链接好好的去做一做好了,呃,欢迎大家如果有什么问题的话,那么可以在咱们的后台呢进行留言,我会及时的给大家做一个解答,好了,那我们这节课就到这里,下节课我们再见。
我来说两句