00:00
好,我们继续来上课,那么上节课呢,我们了解了我们正则表达式的定界符,也知道正则表达式是如何去声明的,那接下来我是不是要往里面去写内容了?哎,也就是说在这里边我们即将要书写的内容,我会称为什么呢?叫做原子啊,就是原子。那么想一下,在我们之前要学习化学的时候,什么叫原子?组成物质最小单位是不是就是原子,对不对?哎,那么在这里边也一样,什么是原子组成正则表达式最的单位就是什么?就是我们的原子,那好了,那我们就要需要知道原子都有哪些内容来组成的,对不对?哎,那OK,我们来看一下在这里边啊,一样,我们先去做一个演示,我新建一个。PP文件叫做零三啊,PAPA。里边的原子。那这里面我们要学习的是什么呀?正则表达式的原子啊,这原子,那好了,我们先去定义一下P等于等于什么呢?等于一个斜线,是不是定义成个表达色了,对吧?比如说这里面我给一个A,那是不是原子呢?那我们得去匹配对吧,Pig跟MAT ch ma。
01:07
因为我们说过正则表达式啊,你光去定义它就是一个普通的字符串,没有任何意义,所以必须跟函数一起使用,对吧?那么这个函数干嘛呢?叫做进行一次正则。匹配啊,如果匹配到。返回一注意啊,它返回的是一并不是处啊,如果匹配不到。返回零,返回零啊,所以这里边我要第一个参数是。用哪个字母表达示,然后你跟哪个字母串进行匹配,比如说跟SSPR进行匹配啊,然后它会给你返回一个结果,然后我们来判断这个结果,如果到了result为正对吧,那我这里边可能就括一个,比如我用一个已经被舍弃的标签啊,给它设置一个color color叫GR绿色,然后来一个结束的。放的这里边叫什么呢?叫做匹配成功。好,然后我们再给他个size SI z等于五。
02:04
这是结束啊,否则是不是匹配失败,来一个form c color,来一个红色结束的FNT,然后这里边叫做匹配400好了,那么现在我们来进行匹配,但进行匹配,我有这个SKR变量吗?没有吧,好了,那我去接收一下啊,怎么接收呢?我们通过表单来传啊,SSPR等于到了下线post里面的SKR。就表单传过来了,那我有表单吗?没有,我这里边去新建一个表单啊,叫做04FOUR。好了,在这里边我们只做一件事,Fom往哪传?往03P原子这里传,然后什么方式传呢?的方式为post,然后这里边来个input叫做test,命个名叫SSPR,对吧?然后再来一个input,叫做提交,好。那么我现在访问是不是要访问这个页面,所以这里边我不再访问它了,而是访问04点码,咱们说了我现在匹配,你看好了我的正则表达式,我现在写的是什么,是不是写了一个A呀?那好了,我开始进行匹配,看看A能不能当原子啊,我这里边输入我要跟谁匹配,跟A匹配来点击匹配,是不是高匹配成功啊。
03:08
对不对,那一样,这里面我要匹配个B呢,等你是不是匹配失败对吧,那么也就证明我的字母A是不是原子。对吧,那同样比如说这里面我再给个B,然后B,那B是不是也一样是原子对吧,那B匹配匹配A肯定是匹配不到的,对不对,但是匹配谁呀,匹配B是不能匹配到。是吧,所以第一点我们的小写字母是不是原子是吧,那好了再来看数字,比如说我来个七,随便给个七啊,那返回来再来进行匹配,跟谁匹配,跟七进行匹配,走,你匹配谁道匹配到了吧,那数字是不是也是原子?对不对,哎,那好了,那数字是原子,还有什么东西是原子呢?你比如说我再来一个特殊字符吗?比如说来个什么呢?来一个这个井号啊,来个井号,那井号是原子吗?这里面再来刷新,比如给个井号来匹配是不是原子是不是也是对吧?那包括比如这里边我再来个Dollar啊,那我跟谁呢?跟这个Dollar来进行匹配,匹配是不是也能匹配到。
04:01
对不对,哎,这是不是都是原子啊,哎,那还有什么呢?比如这些都是可见的字符,我们是还有不见不可见的字符,比如说空格是不是原子,那你看这里边我再跟谁跟来匹配,跟空格来匹配,比如现在什么都不输匹配,是不是匹配失败了,对不对?那好了,我来一个空格再来匹配是不是成功了?哎,包括还有什么,还有那些换行符,转移字符,比如说这里边我把它注释掉了啊。来高S加等于双引号的杠N对吧?那我们再来看这里面的杠N是不是原子呢?注意看这是正则中的什么杠N对不对?我们来看这个杠N是不是原子,这里边一呀,我提交过来啊,提交过来告诉我语法有错,但我的第五行第一行这里边是不没有结束符啊,哎,好了,这回再来刷新。继续是不是匹配成功,也代表杠N是不是也是原子啊那一样,那杠R呢,这里边给它换回来杠R。刷新。继续是不是也是成功的,那也是什么,这些是不是都是原子啊,对不对,哎,那也就是说我们原子有很多对吧,那返回到。
05:01
比例子里面来看好了,我们来记了怎么样,什么是原子组成正的表达式中最小的单位就是原子对吧?正常的字母都是原子,所有可见的字符都是原子,没错吧?哎,大部分不可见的,这不也是原子,比如说什么空格钢钢更替这些我们是不是都演示了?哎,这些都是原子,那么好了,那原子光是这些吗?不是啊,如果光是这些的话,那我们就不好玩了,对不对?哎,那总因为我们在实际匹配的总有一个需求,就能不能有一个东西可以代表什么,代表着一堆内容,比如说一堆这个A到这,小写字母的A到Z对吧,或者大写字母的A到Z对吧,或者数字零到九对不对啊,有没有这种功能来匹配的也有啊,比如说这里边咱们来看,我给他一个杠。一个杠D啊,好了,我把它注释掉了,然后呢,我们再再来接收,我们通过接收来进行匹配,你看杠D代表什么意思啊,在这里边我们返回来刷新一次,比如说我给个A匹配带,看到了吗?哎,那我给一个。一。找你诶匹配成功了,看到了给一个零呢。
06:00
是不是也行,对吧?给一个数字九呢,是不是也行,对吧?所以杠D表示什么意思呢?表示匹配这个零到九之间的任意一个数字,注意是任意一个,也就是说,比如这里面有一串指数都是什么,都是abcd这些东西,对吧?那匹配它肯定是失败的,但只要这里面有一个数字出现。不管他在任意的一个位置。只要他出现。是不是匹配成功?对不对,哎,所以杠D什么意思,看好了,杠D表示数字零到九之间任意一个字符,对不对,哎,那好了,那再来还有什么呢?还有这个杠大D,那你再看大大D是什么意思,这里面我们给它改了啊CTRLCCTRL为复制一个把它注调。这里我们改成大。这里面再重新刷新,这里面同样比如说我来个三匹配,哎,失败了对吧,那如果说我来个五呢。是不是也是失败对吧,那好了,那比如说我来个井号走你诶这成功了对吧,来个A。
07:03
也行,对吧,来个大写的记。也行,对不对,哎,我来个空格。是不是也行哎,那么只有匹配谁匹配不到,说只有匹配数字匹配不到,所以当大地表示什么意思啊,表示就是除了数字零到九之外的任意一个,你看到大力表什么呀?匹配除数字零到九之外的任意一个字符,注意我们现在学的都是匹配一个啊,所以它表示零到九之外的任意一个字符啊,那再往下来还有什么?还有杠S-S表示什么意思?表示匹配空白字符表空格杠N-R-T中的任意一个字符,好了,那咱们来看在这里边同样啊,我这块给他一个小S。小S对吧,来杠S。来杠好了,那么接下来我们再开始进行来匹配啊,比如这里面刷新OK的一个空格来匹配是不是可以的。对吧,哎,当然这里边我给杠恩是没有用的,对不对,哎给杠恩他都表达不了什么呢,那杠恩当杠T这些我这么只能在这里去模拟了,来把它开起来对吧,这块我来直接提交过来之后匹配成功。
08:12
对吧,那比如说这是杠R对吧,我再来个T。刷新。等你是不是也是成功的,哎,也就是杠S表示什么呀,表示匹配这些当中任意一个,对吧?是匹配这些当中任意一个,那同样也有大S,大S干嘛,是不是除了这些字符之外的任意一个,那比如说这里边咱们再来看,我把它先注释掉啊。转过来这一遍,我们换成什么呢?换成大S啊,看到大S是什么意思。那一样在这块我直接来刷新。是不是匹配的是吧,看到了这回匹配的是谁啊,这回匹配的是不是杠T对吧,再来个杠N。刷新。走你是不是也是失败了,哎,那比如说把它注释掉,我们通过传传一个空格回来啊,返回来刷新一下,这里边传个空格,走你是不是也是失败了,哎,那除这些之外的,比如说我来个一走你这是没问题的,对吧,我来个特殊字符走你这也没问题,看到了吧?哎,我来个大写字母的呵。
09:10
也行,对不对?哎,也就是说只要是除了这些空白字符之外的任意一个字符,是不是都能匹配到,哎,这就是杠大S的作用啊,那同样还有什么呢?还有杠W啊,它表示什么呢?表示匹配数字大小写字母以及下限中的任意一个字符,好了,那这回我们来看把它注释掉,注释掉以后,同样这里面我们再来粘一个。这就变成什么,变成小W啊小W小W这个时候我们来看啊,同样我们刷新来个A走你没问题对吧,来个大写的。也行,对吧,来个数字八。走你是不是也好使,对吧,再来个什么,来个下划线走你是不是都行对吧?但是我换了我除了这些以外,比如说我来个什么,我来个加号走你行吗?是不就不行了,哎,所以这个杠W表示什么意思?表示匹配数字大小写字母以及下划线中任意一个字符,注意啊,我们匹配的依然是一个字符啊,也就说在这段字符串里面,比如说我给他一行加加加加加加没问题,对吧,只要这里边有一个我能匹配到的A。
10:18
走你是不是就匹配成功了,对不对,哎,唯一一个符号就是谁就是下划线,那你看比如说这里面我把A删掉啊,匹配下划线找你是不是也是成功了,对不对。哎,那有人说了。比如说这里边我又有A,又有下划线,又有这个数字四对不对,那他最后匹配的是谁呀?哎,那我们可以干嘛呀,我们可以在这里面通过这个加号的第三个参数。来查看好了,MAS ma ch啊,它会将匹配到的结果赋制给这个数组啊,这是一个数组来为阿杠DMP打印了ma ch,好了,那这个图你来看啊,我再来刷新,这里边同样比如说给了一行加号对吧?这些匹配肯定是不成功的吧,你看啊,先提交一下匹配是失败了,数五是不为空对吧?那返回来,当我加一个二,再加个A对吧,这个再来个C。
11:05
或者大写的C,大写的V,大写的V啊。好了,点击提交匹配的是谁?拿到是不是第一个说大写的V亚,哎,所以然说了,他只做一次匹配,只要匹配到了就完事啊,只做第一次的匹配,只要匹配到就完事,好,好了,这就是咱们杠W的作用,那同样有大,有这个小W,是不是也有大W,那这里面我再过来。叫了他。大W,那大W什么意思,是不是就是除了除了谁呀,除了A到Z对吧,还有小A到小Z,还有零到九零到九已经下线,是不是除了这些当中这些之外的任意一个对吧?那咱们来看,比如说返回啊,这里面我们来刷新给个A匹配是失败了对吧?那我给一个这个包服匹配是不是就成功了对吧?包括我给下划线能匹配到吗?是不是也不行。哎,所以这个杠大W就是除了这些。当中任意啊,除了这些之外的任意一个字符啊,这些就是我们正则表达式中的原子啊,好了。
12:08
那我们回过来,咱们来看原子。啊,一个是杠,怎么样杠这个W对吧?然后一个是大W,这块我写了大写啊表示匹配,除了数字大小写字母以及上线中任意一个字母对不对,那OK,那这块原子我们看完了,接下来我们再看什么呢?看一下我们的原子列表,好,那么原子列表主要干嘛呢?你比如说啊,现在我们现在来匹配,比如说我要匹配数字对吧,比如想匹配数字,那么匹配数字的时候是不是零到九之间任意一个对吧?那好了,我不想零到九,我只想要零到这个零到五,或者一到五之间任意一个。啊,也就是说匹配,我想匹配一到五之间任意一个。字符对吧,那这个时候我能用这个杠D吗?打了PAPA等于什么斜线,这里边杠D行吗?杠D是不是就零到九了对不对?哎,你看这里边我们再来返回刷新啊,比如说给它三没问题对吧?哎,给它七。
13:09
这也没问题,都能成功吧,哎,因为杠D咱说了代表什么,代表是零到九,所以这里面不能用杠D,那怎么办呢?这个时候我就可以借助我的原子列表了啊,给一个什么,给一个中括号,你要匹配谁呀?我要匹配的是一。2345啊,这当中任意一个啊,是这当中任意一个,好了,那现在我们来看啊,在这里边。来返回来刷新一下,我要匹配个零。找你失败了对吧,匹配一个六。终于这也失败了。那好了,我匹配一个一。是不是成功了对吧,匹配了二。是不是成功?三。是不是也行对吧。五。是不是也行,对不对,哎,这是不是就实现了匹配什么匹配这个范围了,那么这种连续的数字啊,连续的数字我可以干嘛呢?我可以给他简写,简写为什么呢?到了PP等于斜线。
14:01
斜线中号给他一个什么,给了个一到五啊,一个一加个什么,加一个这个波浪线啊,不是波浪线是等号杠啊,一-五表示什么意思,表示匹配一到五之间任意一个字符,那现在你来看是不是还是这样的啊,我们来反回来。如果我给他。走,你失败了对吧,我给他六。是不是也失败了,哎,但是在这个当中三是成功。一个二。是不是也行对吧,给个四是不是也行啊,对不对,哎,所以这种连续的东西啊,连续的东西我们可以干嘛,这种横杠写成中间分割横杠,前面给他开始字符,中间是横杠,后面给它结束字符。对吧,那包括我不用数字,我用什么呢?我用这个。字母是不是也一样,比如说我要匹配什么呢?我要匹配A到abcd。E吧,A到E或者到DA到DA到D,是不是包含A和D啊对不对,其他的都不行,大家注意我这是小写的对吧?小写的平面大写是不是也匹配不了对吧?哎,所以这里边我们再来看啊对,刷新我给个大写的A匹配是不是失败了对吧?但是我给个小写的A找你。
15:09
诶,小9A也是失败的。喂。A,我看我是不是写错了啊A-D。没有错呀,AB CAC。D嘛abcd嘛,这四个是吧,那现在我们先哦,错了,是对的,我没给什么,没给正则的并列符吧,对不对?行我们先看这种,呃,我挨个写的来重新刷新匹配个A,这没问题,成功对吧,匹配一个B。这是V。一个B走你也是成功的,对吧,里面一个C。也行,匹配个D。也行,对吧,我要匹配一个大写的A。是不是不行了对吧,哎,匹配一个E呢,走你是不是也不行,也就是他只能匹配什么abcd当中任意一个对吧,所以这种连续的我就可以干嘛用这个横线。分割请开始,后面跟着结束,那这个时候。
16:00
重新刷机匹配个A走,你是不也可以了,对吧,匹配一个C。也行吧,哎,但是我要匹配个E走你是不是就不行了,哎,包括我匹配个大写的B,大写的B啊被给位了,大写的B走你是不是也不行,对吧,只能什么只能是小写的吧,哎,这个是咱们的原则列表,好,那另外我们光一中这种情况嘛,也未必,有的时候我们还需要排除一些东西,比如说啊这里边。我想干嘛呢?匹配除了除了什么除了。四。之外的。之外的,或者这样除了ABC之外的任意内容。任意一个内容啊,任意一个内容,那怎么办?到了到了PT啊等于什么呢?就等于一样,还是用我们的定子定符,然后动括号啊,里边我们要除了某些,那我需要什么用排除列表,也就中括号前面加上什么,加上一个一阳符啊,这个符号是键盘shift加六来打出来的啊,Shift加。
17:00
六打出来的啊,是英文状态下啊。C加六打出了这个一氧伏,你要除除了谁呢?比如说我除了A到ABC和A到C,那或者ABC都行对吧?好了,那给完以后,那这个时候我们再来看啊,除了ABC之外的任意一个都能匹配到来,这里面我给个大写的B,注意这是大写没问题对不对,但如果我给小写的A。不行,看到吧,小写的B。也不行,对吧,小写的C,小写的C。走,你这都不行了,哎,但是呢,除了这个之外的任意一个是不是都可以,哎,这是咱们的排除列表啊。来,我调一下。好了,那排除列表和原子列表我们都会了诶。拉过来啊,这里边咱们看原子列表,咱们说了表示指定的这个字符中选取一个原子对吧?哎,另外排除列表,咱这个表示除了ABC之外的所有字符都可以使用对吧?那咱们既然会了原子列表跟这个排除列表了,那能不能用这两个来模拟这些效果呢?可以吧,比如说啊杠D是数字零到九,那用原子列表的话,是不是中括号零-九啊,对吧,那这个呢,除了零到九吧。
18:17
当大D是不是除了零到九之外的,是不是一元符零到九对吧?这个呢是表示这些字符中间一个,也就是说我们需要干嘛,空格杠这个N-R-T是不这个意思,哎,它呢杠大S呢是除了,除了的话是不是就一阳符,然后空格杠N-R。杠T是不是除了这些之外的对吧?而这个呢,表示什么?你看表示匹配数字,大写字母以及下划线对吧?那是不是数字的话,是不是就零到九,大小写字母A到Z,大A到大Z,这是不是都是,然后还有什么呢?还有。下划线,哎,那这个杠大W是不是就除了这些也就是。除了零到九,然后A到Z。
19:00
A到Z以及大A到大Z,就除了这些之外的任意一个,对不对,哎,那咱们来看,我们随便拿一个来做一个测试啊,比如说在这里面。Dollar p等于中括号,不对,等于单引号斜线中括号除了除了什么呀,除了零到9A到Z,大A到大Z以及下划线之外的任意一个我都能匹配到,那这个时候我们来看啊。返回来刷新一下,我给个A匹配失败的对吧,我给一个大写的A匹配也是失败了,我给一个数字六匹配也是失败了,我给一个。下划线。找你是不是也是失败了,再了除了这些之外的来,比如说我这里面来个加号,找你是不是成功对不对,哎,这就是咱们的排除列表和原子列表的使用啊,也就是说当这种需求也满足不了我的时候,我完全可以用什么用原子列表或者排除列表来实现我的这个原子对不对,哎,好,这就是咱们正则表达式中的原子,那这节课我们到这里。
我来说两句