00:00
好,下面呢,我们来了解一下JS当中的一个叫正则表达式。智能表达式呢,它是帮我们做匹配。做验证。啊,相关的咱们GS当中的一个小的一个知识知识点啊。正的表达式,它的一个用途是什么?我们这边写的三个用途有模式验证,匹配读取以及匹配替换,其实就一个就是查找,查找是否有符合我们规则的这么一部分内容,如果有的话,诶,我们可以用于做验证,我们可以把它读出来,我们也可以把它替换掉。但是首先第一步看有没有符合我们规则的。我们智能表达式的使用呢,咱们把它分成三步。第一步是定义。第二步,我们需要一个待验,待校验的一个字符串,第三步,我们进来做匹配。那行,咱们快速的把它看一下。我把这些全部关掉啊,我们就用这个项目。回到这边来。
01:00
那下面呢,我在这边,我在这边呢,我来新建一个。新建一个页面。我新建文件夹吧,叫rag啊,然后把它全部放在这里面,我先来新建第一个。我写个叫大零幺。然后呢,我在这边写一个script。Script language等于javascript。好,我把它写到这啊。正则表达式的使用三步骤。第一步,定义正则表达式对象。第二步定义待校验。带校验的字符串。第三步,校验。就分为三步。咱们先来看第一步,叫定义一个正的表达式对象,我们怎么去定义呢?我们怎么去定义呢?我们一起来看一下,我们有两种方法进行定义,第一种new rag,第二种叫直接量的形式,叫杠杠,这叫直接量的形式。
02:10
那行吧,咱们先来写一个。比如说叫rag等于。6RAG。就是它,然后呢,我们可以在这边写一个,比如说我写个叫ABC稍等啊。怎么机器这么卡?好。第二步。带校验的字符串,咱们可以写一个。VR。Str等于ABCDEFG,好,我写了一个第三步,我们要进行校验。那么校验的时候呢,我们可以使用。Test方法进行校验。我们来试一下,比如说rag.test的方法str。好,我们定义一个flag,我们可以把这个flag的值空点log。把它打印出来。
03:02
我们试试看。啊,咱们一起来试一下。点一下它。右键。找到cons,你看是不是打印的是true。啊,他答应的是,那就没问题。因为它里面包含ABC嘛。这里面是有的嘛,那假设咱们把这个C给删掉了。啊,ABC对吧,下面写的是abd。那咱们再来试一下。刷新一下。你看是不是就变成false了,哎,就是这样。啊,所以这个智能表达式其实是比较简单的,就是这么三个步骤。好了,我们刚刚说的是正的表达式定义的时候,我们使用的是new rag exp,那么除了这样的方式呢,我们还可以使用杠杠。好,我们在这边写一下,在这里面啊,我们可以在这里面,我们可以写一个ABC。
04:00
诶,这也可以。那现在肯定是force,因为这边少了一个C嘛。好刷新一下,你看它还是false,那咱们把这个C把它补上去。啊,补上去之后我们再来刷新一下,它就变成Q了,没问题吧,就这样子。这是它定义的两种方式。正则表达式定义有两个方式。第一个对象的形式。对象形式。叫new,那么这里面其实有两个啊,其实是有两个,咱们现在只讲了一个,不着一会啊。第二个是叫直接量的形式。好,Rag等于杠杠。啊,我们是这么去写的,就这样子。好,这边随便写一下吧,ABC。好,再来。定义咱们还没说完呢,咱们再接着再来看。
05:01
我们在定义的时候。比如说我们这边一个案例,咱们一起来读一下啊,一起来读一下,首先expression杠杠,我们是不是定义了一个O。然后咱们带校验的字符串STL是不是叫hello word呀?叫hello,那么其中是不是有两个O啊?那你说这个test是true还是false?显然是缺嘛,只要有一个O,不就是缺了吗?对吧,行再来。那么假设同学们,我不仅要判断里面包含是否包含O,我还要判断到底你包含了多少。也就是说,我要找到所有的。我怎么去找到所有的呢?哦,我们后面写了个G叫叫全局匹配。这个叫全局匹配。就是这样。好。也就是说叫匹配的模式。啊,这边有叫匹配的模式,叫全使用G之后,它就变成一个全局匹配的模式。
06:02
好了。所以呢,我们再来试一次。比如说这个我们在后面写一个G。稍等啊,我不在上面写拷贝份,CTRLCCTRLV。大零二行吗?同学们,我把它分开啊,来这个我就和刚才一样,我写个O。后面的我先把它删掉。然后这个里面我来写一下AB AB Co hi j KL,就这样吧,里面是不是包含两个啊,它包含两个那行吧,咱们用麦也行,或者我们ST,它有个方法叫replace。看到了吧,Replace是不是替换的意思啊,替换第一个参数就是第二个参数,就是你要把这个匹配到的,要替换成啥。啊,我们第一个rag,咱把它放进去,我把所有的O全部替换成下划线可以吧。啊,把它全部替换成下划线,这叫replace。我看一下啊,点replace这个方法,它返回的是string,咱们再用STL再来接收一下行吗?同学们,然后我们把STL把它打印出来。
07:07
好,请问如果我现在去写的话,两个O都会替换吗?点一下试试呗。右键检查,打印一下看看。找到控制台。你看一下是不是第一个替换的下划线了,那第二个呢。他没有替换,OK。那行吧,咱们把叫匹配的模式,咱们把它加进去。把这叫注释掉。VR rag等于。哦。O斜杠G。哎,即表示匹配的模式,表示全文匹配。它表示的是全文匹配,那行啊,我就加了个G,咱们再来执行一下。刷新。能看到吗?是不是后面一个也提问了,下划线了,哎,就这样子,这叫全文匹配,应该好理解吧,同学们啊,这叫第一个,好,我们匹配的模式,第一个叫全文匹配,再来再接着看。
08:07
还有一个是什么呢?还有一个叫忽略大小写。忽略大小写,我看一下啊,稍等一下。好,叫I。这个叫忽略大小写,行,我们再来试一下。现在我把这句注释掉。稍等啊,拷贝份还是不住是吧,拷贝个啊大本零三。来,注意看我屏幕啊。这个删掉。OG。好。我把这个O我改成大写。我改成大写了啊。这是单零三。我点一下。右键。右键检查。找到控制。你看我匹配了吗?没有为啥。啊,因为他大写的,咱们这边写的是小写的,那我想让他忽略大小写。
09:02
我加个I。我加上一个I。好爱。表示忽略大小写匹配。行,我们再来刷一下这个页面,刷新一下。变掉了吧,哎,就这样子好,这是我们第二个叫I。那行,咱们还有一个。我们一起来看一下。再往下叫多行查找。啊,叫多行操纵。我们来看一下这个案例。来看一下这个。哈。第二个字母上叫hello。好,我们得提前,提前先讲一下这个Dollar符号表示的是以什么什么什么结尾。这叫刀。啊,以什么什么结尾。所以呢,这是我们一个正的表达式,那么我就用这个test方法,你看一下STL01是不是这个。
10:01
哦,它是false,哎,它怎么是false呢?因为它是以word的感叹号结尾的。它不是以哈结尾的,那么我们看再看第二种。我们再看第二个,第二个是hello,那它当然就以它结尾了。对吧,第二字符串当然就以它结尾了,行。这个是我们没有加。A的场景。加了M之后叫多行查找。叫多行查找。那行,咱们加上M之后,你就会发现ST201,哎,它也变成Q了。就是因为这个换行符,它能够识别了,这叫多行匹配。行吧,咱们把它演示一下。根据C,根据V0,四。好,打开。我们在这边写一个叫AB CA ch oh,我这边写个杠N。杠N,我们来试一下啊。然后呢,GI放在这边没问题。
11:02
稍等啊,GI在这边。嗯,用换行,用换行。换行不太好啊。GI。稍等啊,我就直接这么写吧,和刚才保持一致吧,Hello。后面两个先删掉。然后呢,我这边写个叫hello word是吧,Hello word。好的可以吧,然后呢,我们写一个叫test方法。好空打印一下啊。打印一下VR flag等于等于等于等于ra.test方法,Test test。然后呢,把我们STL把它放进去。那咱们看一下这个flag的值是否匹配。然后呢,把这个rag咱们加一个Dollar稍等啊,Dollar Dollar咱们一会儿会讲到以什么什么结尾啊。M表示多行匹配。
12:03
OK。那么现在呢,我后面呢,我没有加任何的这个M,我没有加。那么这个字符串多,它不会有多行匹配,他认为这就是一行。那你是以哈结尾的吗?明显不是的。点一下。行右键检查。我们看一下它应该是false,没错吧,确实是false,那行咱们把M把它加进去,要支持多行匹配。那这时候这是第一行,这是第二行,只要你有一行符合就行啊。所以我们来刷新一下。你会发现它就变成Q了是吧,同学们这叫M啊,叫多行匹配,就这样的。OK。好,这是我们说的第一个小的知识点。稍等一下啊呃,这个下面注释比较多,这样吧,我把这个CTRLC。CTRLC,我把它放到read me里面行吧,同学们放到这里面去啊,第一个。
13:07
正在表达式啊,第一个第一个我们第一个是。正则。稍等啊,直接先拷过来再说啊。正则表达式的使用的三个步骤啊,123,那咱们刚才讲的是对象的形式,直接量的形式,然后我们需要说一下第三个叫匹配模式。平稳模式。G表示全局匹配。好,第二个是I表示忽略大小写匹配是吧。好,第三个叫M,叫多行匹配。嗯,就这样子,那么这三者。G。I'm这三个可以混合使用,可以组合使用。不区分。不区分先后顺序行吗?同学们,你写GI mi GM MIG,什么都可以。
14:06
啊,不区分先后顺序。啊,所以比如。例如。VRRA。等于刚刚ABCDGM,这是可以的,或者GI'm都行,行吗?啊,这是一种方式,第二种rag。等于。好。ABC,那你后面可以再写GM。行吧,同学们好,就这样子。好,这是第一个匹配模式,我讲完了。那下面呢,我们需要看一下正则表达式的第二个小的知识点,叫叫元字符。咱们一起来看一下。原字符。啥叫元字符呢?比如说比如说我们刚刚所看到这个Dollar,它就表示字符,我们前面在讲这个result set的时候,我们讲过一个叫result set data。
15:02
我们那个称呼叫原数据还记得不。叫原数据。原数据就是修饰我们结果及数据结构的数据嘛,叫原数据,那这个地方的原字符是什么呢?首先它得是字符。元字符就是描述正则表达式当中其他字符的字符。这就叫原字符。啊,这个概念上感觉挺绕口的,其实比较简单,咱们一个一个来看。第一个点。表示匹配除换行字符以外的任意字符。除换行字符以外的任意字符。这叫点。杠,小写的W,它指的是匹配字母或数字或下划线。啊,匹配字母匹配数字匹配下划线。只要能够匹配的到,哎,他就为处。这个杠大写的W是什么呢?和它相反,匹配任意非单词字符。
16:02
那行吧,咱们看一下这玩意儿。字母数字下划线。啊,匹配字母数字下划线,我们一起来试一下吧。来,我再来写一个。CTRLCCTRLV代码零,五。好。把其他的全部关掉啊,咱们看一下代码零五。好,同学们,我准备这么来写。RA表达式后面这个我就不管了,GM行吗?同学们三个字符全写上去,呃,这里面我想写啥呢,杠W。杠W是不是表示字母下划线或者是数字间的匹配啊?行,这边我写了个STL hello。Hello word,咱们搞一些大于号。啊,搞些下划线。搞一些问号可不可以?可以吧,是不是太复杂了?A大于号B_C竖线杠NF。
17:08
问候。就这样吧。然后ST稍等啊,稍等一下ST。Replace。第一个。啊,第二个全部替换成什么呢?全部替换的大写字母A。啥意思?这啥意思啊?把这个带校验的字符串当中符合这个规则的全部替换了大写字母A。是不是这个符合不符合。符合的吧,这玩意儿呢。哎,行,咱们来试试好。这边先杀掉啊。好,我们来看一下啊,这是大零五点一下。把它关掉,右键检查找到控制器,好,你看一下是不是替换掉了,来回到这边来看一下啊,咱们来咱们来核对一下啊,第一个字母A是不是属于杠W范围。
18:10
那么就替换成替换成大写字母A大于号,要替换不。不需要B字母要替换不,下划线替换不C替换吗?啊下划线不替换啊。替换了吧,字母下划线或者是数字是吧,同学们,所以B_C是不是都替换,所以人家就出现三个A嘛。没错吧,后面有个竖线要替换吗?不替换,后面个D呢,替换了吧,所以就变成大写的A,后面杠N是不是就换行啊啊,它就换行,然后F替换了A问号不替换,G替换对的吧。不正好符合吗?能看得懂吗?能看得懂行,我们大家其实有一个误区,我来考一下大家。我来考察一下大家啊。我这边我写的是。
19:00
写的是rag.test。他给我返回的是一个不保类型flag,请问一下这个flag是出还是false?这个正态表达式指的是啊,数字下划线或者字母。你要匹配的这个字符串啊,得有字符串下划线或者字母,请问秋false。是去是吧,那说明大家没问题啊,说明大家这个逻辑这个思维是差不多是正确的。它这个的意思指的是啊,匹配的意思指的是只要你这个表达式里面有符合这个正的表达式就行了。哪怕你有100个字符,99个不符合,没关系,只要有一个符合就行了。他并不是说老师这不对,你这边说的是字母下划线和和数字,诶那这个大于号不就不不匹配吗?那不应该反问false吗。这不对,这个思维方式是不对的。
20:02
啊,反正大家认为是true啊,那说明大家思维没有乱啊,我就不再把大家不不再去把大家解释乱了是吧。啊,他指的是这个正的表达式里面只要有符合的是不是就返回去啊,你其他不符合的我不管你是吧,同学们只要你有符合的就行,能听懂吗。所以咱们运行一下啊,代码零五刷新一下。你看一下是不会错啊。只要我找到一个符合的就行吗?如果。给you see,给you。这符合吗?没有符合的吧,啊,没有符合的我试试。刷新一下。是不是就得force了,一个符合的都没有给他一个数字A。还是for to,哎,这个大家应该能理解吧,只要有一个符合我的表达式,我就认为是true。只要有一个符合,我就认为是穷。啊,因为之前有同学问过我是吧,我实在不知实在憋着不知道怎么去解释是吧。
21:03
只要有一个符合就行啊,就这样子。好。我们还是回到。还是回到这儿啊。行。就是这样的。再来,咱们再继续啊。这叫元字符。啊,小写的W以及大写W,那如果我写大大写的W,大家应该没有疑问吧。把咱们刚才没有替换的反而替换掉。是不是把什么问号呀,竖线啊。大于号呀,是不是把它替换掉啊,这叫大写的W,再来。不用去死劲背啊。正则表达式,我对于大家的要求是。你得掌握,老师好像讲过正能表达式使用有三个步骤呢。你要记住这三个步骤,然后老师好像提过这里面分别代表什么特殊含义,把它稍微有个印象就可以了。啊,我们正常情况下做开发,不会让你去写正则表达式的。
22:04
直接百度就好了。比如说你要找手机号的正能表达式啊,邮箱的正能表达式啊,身份证号的智能表达式啊,去百度不要自己写,你自己写的话很容易出错的,行吧,同学们啊,再来接着看啊。小写的S匹配任意的空白符,包括空格制表符啊,来换换行符,那行咱们试一下这个S。就用这个靠背,一个根据V。零六。稍等一下啊,我先回到这。这是我们刚才使用的三步骤啊。正代表的是使用的三步骤。第二个。第二个叫原字符,元字符。
23:00
原字符当中第一个是点。第二个是杠。W。第二个是杠W是吧,好下面一个。下面一个叫杠癌小写来。匹配任意的空白符。叫下划线S。啊,还有一个叫大写S,正好和它相反嘛,你上面一个是任意的空白符,那下面一个大写S就表示非空白符嘛。是吧,行试试啊。回到这边来。这个删掉了啊,Replace替换,咱们把这个W改成这个S是不是啊。那这个方行符是不是符合空白符嘛。表示。匹配,匹配空白符。例如。匹配啊,匹配换行符。换行符制表符啊,等等等等啊。
24:00
那行,那这个刚刚应该会被替换掉,咱们来试试呗。点一下。好,控制台,你看一下是不是没有换行符了。啊,就换这个位置,它改成大写的字母A嘛,啊就把它改过来了,好就是这样,就这位置。好了再来。这是小写S以及大写S,下面有个叫小写的D,大写的D,小写的D,这个叫D。啊,D是数字的意思,匹配所有的数字,大写的D匹配所有的非数字是吧。那行,咱们再来看一下。CTRLCCTRLV。哎,我刚才改的是代码零五。那代码零六没改是吧。稍等一下啊,稍等我一下。稍等一下啊。我把它改成五。就把它改成六。
25:03
好,继续啊,CTRLCCTRLVW07。第七个我们要看的是数字D啊。表示匹配。数字。哦,不好意思。小写的D表示我们要匹配数字。啊,匹配数字,大写的D表示匹配非数字。OK。那么我这边写个小写的,小写的D啊,然后咱们这里面就写个五。A大于五。解释简单一点嘛,啊,一大于,然后咱们replace。把这个数字替换的大写字母A是不是这样的,行试试啊。
26:01
大家可以使用空点log,也可以使用document.right啊,行吧,同学们,这样它就能在页面上展示了啊,这样就不要我在总是去右键检查了。行,这是零七点一下呗。改掉了吧,啊,这是数字,那行再试一个。Could you see。Can do it。给他大写。那你改成大写,是不是这俩玩意儿就改掉了?再点一个。对的吧。啊,这没问题,比较简单啊。下面是。杠B字母匹配单词的开始或结束。匹配单词的开始或结束,这叫小写字母B。
27:01
开始和结束。好。注意看啊。这个不要了。Rag等于。杠B。匹配单词的开始和结束,注意看啊,我这边写一个hello word,我写了一个hello word。然后在单词的开始和结束的地方replace,把它替换大写字母A,你看一下会是啥效果啊?这是代码零八点一下。你看一下是不是在hello的前面,单词开始的地方加了一个A,单词结束的地方加了一个a word开始的地方加了一个A,结束的地方加了个A,对了吧,哎,就这样。这叫杠B,表示匹配单词的开始和结束。再来。下面一个叫这个小贱号。匹配字符串的开始。到了匹配字符串的结束。好。
28:03
根据CCV。代码零九。小贱号。表示匹配。某某某开始啊。匹配开始。呃,到了表示匹配。结束。啊,结结尾吧,匹配结尾那行。小号。A以A字母开始吧。标示以A字母开始,B到了。以B字母结束吧。A。Hello word b。好,我们来试试,如果符合的话,咱们把它替换成A。啊,把它踢完了A点一下看看。A字母开始,B字母结束,没有匹配啊。是不是啊?啊,没有区别。
29:00
我写个小间号,诶,我试试啊。刷一下,哎,匹配的吧。没问题啊,没问题。我写个B到了它是不能够区分开吗。啊,那可能是的,他会有一些歧义是吧?行,这个条件我们先不看啊,先看一个。以A开始,说明它是符合的。啊,数位是符合的,以B结束。也可以CTRLCCTRLV。可以吧,这也是可以的,我们再试试刷新一下,它就变成后面这个是大写的A了,是吧,那如果以A开始,以B结束怎么办呢?有办法的有办法的啊,一会儿再来看,一会儿我们还会看一些叫叫操作符。好了,这是我们所说的叫元字符,我们已经把它搞定了。好,把read m加一下啊。杠B先先写杠D啊杠大写的D,然后呢杠B,然后呢,还有一个叫叫小间号,小间号还有一个叫到了是吧,同学们这是元字符。
30:07
第三个。再来。OK。下面再来看啊。我们来看一下啊,叫字符集合,咱们一起来看一下。字符列表这个表达式中括号ABC,我们加了一个中括号,听好了是加了一个中括号这么一个运算符。目标字符上包含ABC中的任意一个字符都可以。如果你不加。如果你不加中括号,那就是ABC必须要匹配。假设你有AB不行。是这意思吧?第三个关于中国号啊。我叫这个啊。表示集合。
31:01
我们来写一个啊。CTRLCCTRLV代码幺零。好。RA,我在这边写一下中国号ABC我先不加,中国号同学们我先不加。你看一下他的情况是啥啊。剪切。把它放到这。我现在不加,然后呢,我在这边写个叫AB。Hello word c,我先这么写。然后我们把符合条件的用A进行替换,是不是啊,那请问有替换的吗?没有替换的点一下。因为这里面哪里有ABC啊。注意看。我加的中国号。只要有A字母。或者有B字母,或者有C字母。我都要替换。行吗?我都会去替换好,现在我们再来运行。
32:03
点一下。你看它就变成这样了。是不是啊,前面两个是AB嘛,这个是C嘛。对吧,同学们啊,他就给替换掉了。好,所以这个中括号它表示的是集合。好,表示集合。表示只要有A或者有B。或者有C都匹配。啊,多匹配就这样的。好了。如果没有中国号。表示必须精确匹配。ABC是吧,同学们啊,这个区别把它要要要能把它区分开,这叫中括号再来。再接接着看。呃,中国号里面我加了个感叹号啊,不加了个小号。注意了啊,这个小键号和咱们看的刚才看的这个原字符的小键号不一样。
33:01
刚才这个小间号它指的是以什么什么,以什么什么开始,对不对啊,但是在中国号里面,它表示取反。啊,它表示取反的意思。好,所以小键号ABC指的是什么?目标字符上包含ABC以外的任何一个字符。刚才是只要是ABC的任何一个字符吗?现在是ABC以外的任何一个字符。好。嗯。要不不不复制了啊,我直接把这句注释掉CTRLC。根据V看好了,我加了个小剑号,加了一个小键号。ABC以外的任何一个字符,那这个嗯,Hard word是吧,行试试吧,啊点一下。你看一下是不是ABC都没动啊,其他的字母它都换掉了。啊,这叫小间号区反。
34:06
表示取反。此处啊,或者叫中国号。中国号中的小贱号。表示区分。就这样子再来。在我们这个集合里面还有一个字符叫杠。杠表示的是范围。啊杠表示的是范围。好。我们也来试一下。比如说。我这边写了一个字母。我把这叫注释掉。把它拷贝一份CTRLC。然后我这里面写的是什么呢,A到。ABCDEFGA到G。我把A到G的字母全部替换了大写字母A是不是啊?
35:00
好,那这个替换呗。这也替换呗,这不替换。这个替换ABCDEFG这两个不替换,这也不替换,这也不替换,这也不替换是吧。哎,D和C是不是也替换了,行,咱们试试。点一下它。你看是不是h lo这些都没替换?好,我们写一下啊。这个叫。中括号中括号中的杠表示范围。啊,中国号中的杠表示范围行快速的写一下啊。好,第一种情况,第一种情况是中号当中ABC。表示A或者B或者C。第二种A-C,呃,不叫A-C啊,叫小键号ABC。表示取反啊,只要不是A,不是B,不是C就匹配。
36:02
没错吧,行,再来一个A-C。表示,取表示A到C这个范围匹配。是吧,行,这是这个再来再接着看。下面我们一起来看一下叫所谓的叫出现的次数。出现的次数。一起来看一下。第一个星表示出现零次或者是多次,这叫星。加号出现一次或者多次大于等于一。问号表示出现零次或者出现一次。表示出现零次或者出现一次。大括号N,它指的是出现N次。好了再来,还有一个。叫N逗号。啊,出现N次或者是多次,还有一个,哎,这个比较常用。
37:02
出现N到M次。那行吧,咱们来看一下。简单来读一下啊。看这个。中括号,中括号表示集合嘛,哦,集合里面字母A。然后要大括号哦,写的三表示A字母出现三次吧。那匹配这个能匹配的上吗?不能。再来三个A可以了吧,四个A可以了吧,哎,都能匹配的上。就这样的。那行,咱们来写一个。CCV代码幺幺。好,代码幺幺。好了,然后呢,我把我这个正在表达式把它改一下rag删掉啊回到这边来。字母A。我写个大括号。好,或者写个L啊,那出现两次吧。
38:01
是不是啊,出现两次好,然后就替换,替换成下划线行吗?同学们把它替换成下划线,那问一下这边是不是要替换。那那那那这个地方呢。替换吗?我们来试试。点一下。这边替换掉了这个呢。没有地方,为啥?两次嘛。那你这个你是不是只有一次啊。行,再来几个,哎呦哎呦哎呦。这样呢?好,咱们来看一下,点一下。你看前面两个是不是被替换了,后面一个L,那因为是三个嘛。替换了前两个,那只剩一个。那你写四个咱们就不说了好不好,四个那肯定就是全替换了啊OK。好,出现的次数。第一个是心。表示。表示多字。啊,肚子。
39:00
零到N。啊,然后呢,咱们写了一个加号。至少一次。是吧,至少一次,它表示的是大于等于一。好,幕后。表示的是最多一次。那就是零。呃,零到零到一是吧,同学们啊,零到一次叫问号。啊,大括号N。表示出现N次。出现N次,哎,就这样好按逗号。出现N次或者多次是吧,行,再写一写。N次或者多次再来最后一个N叫N到M,反正随便谁写在前面都可以啊。出现N到M。是吧,N到M次,哎,就这样子,我们把这式子把它改一下。
40:00
三次,两次,一次。12345。我把它改成二四。这啥意思?至少两次,最多是四次是吧,这个变不变。这个变不变。这个呢?不变,这也不变是吧,行点一下。是的吧,这个变掉了,这变掉了是吧,那这边呢。为什么要变掉你五个字符,前四个不就匹配了吗?对吧,同学们,哎,就这样子,所以说你看来再对照一下啊,我把把它放在这。稍等一下啊,我把它往下拖一点。太小。关掉一个,关掉一个,再关掉一个。好看一下啊,仔细的看一下,我写的是二到四。那我问一下L符合不符合。
41:00
符合用一个下划线拼接替换掉了吧。那再来老师不对啊,你这个三个咱们刚刚讲过的,不是说你三个你匹配两个,还有一个要剩下的吗。不要被我迷惑了,我写的是二逗号四,它虽然符合两个,他也是不是也符合三个。那是不是人家就把这整个三个做一个整体给替换了。能理解吧,同学们。再来。H he l,那就没得说,正好只符合它的边界值啊是吧,所以就替换了,再往后看,再往后看。123455个诶。是不是按最大的四个四个全部把它替换掉,对吧,同学们,然后再加个A。啊,最后一个这个这个不不符合,那就不替换。OK。没问题吧,嗯。也就说老师,那如果出现六个呢。六这个比较简单。就改了六个啊,点一下你看一下。
42:03
这一二对了吧。这好理解吧,四加二码按最大的匹配,先按最大的尽量的去匹配,匹配了四个,还剩下两个,哎,剩下两个正好又匹配了。没错吧,那我想我写七个也完了。是不是还是两个,我写八个呢?那是不是还是两个。行不用我解释了啊,OK。好,这个叫出现的次数。再来下面一个叫竖线。竖线,它指的是或者。比如说这个rag匹配word或者匹配加。啊,匹配word或者匹配加法。这叫或者。就是这样的。好了。CTRLCCTRLVG12。
43:05
好。然后呢,再来。Re。把它删掉,我们写一下,比如说我先把下面这个字数先改掉啊。我改成ABCDEFG。这我改成我首先首先啊,首先我来写一个,比如说我用竖线把它分割是吧,用竖线分割,那我就写个A竖线。如果是A或者是D,我们就把它替换成下划线行吗?试试吧,点一下它。那你看一下A换掉了,D是不是也换掉了,哎,这叫或者就这样的。OK。好。那行,这个或者我也说完了啊,再往下就是一些常所谓的叫常用表达式了。
44:00
这个表达式呢,呃,大家如果感兴趣你就把它去看一看啊,实在不感兴趣就算了啊,因为这个长表达式我说了大家不要自己去写,请你去百度啊。正则表达式。表达式大全。史上最简单,那就相信他一次吧。你看一下校验数字的表达式啊,这些是吧,校验字符的表达式是不是有这些,对了吧,特殊需求的表达式是不是有这些啊。啊,就这样的啊,这个好多了是吧,我感觉还是还是蛮全的是吧,应该来说还是蛮全的,一般情况下大家常规的要去做一些校验的话,这些表达式其实别人都早就已经写过了,你就不要自己去写了,你写不对的。啊行吧,因为你说比如说你要去校验一个,我不说其他的,我就说常用的,比如说比如说email。因为咱们注册要用的啊,我们这个注册功能里面有的email地址你看。
45:03
你这个这玩意你你咋写,勉勉强能够看得懂哦,小贱号哦,这玩意儿是以什么开头是吧?哦,多了是以什么结尾是吧?哦,这个杠W是啥意思啊?是不是啊?中间这个艾特我应该能认识。因为你邮箱里面必须要有艾特。但是我的邮箱里要搞清楚,同学们不是光有艾特就行的。得有at,得有点,而且和点,点必须在at后面,而且at和点之间必须得有其他的字符。是不是啊,其实规则还是蛮多的啊,所以就就就放弃吧,啊就就就这样子。这个放弃是玩笑话啊,因为因为什么呢?因为人家已经写好了,你干嘛要在这个上面浪费时间了是吧,就就没必要了啊,以前这个我记得我上大学的时候,有专门的一本书叫正在表达式入门经典,是一个红皮书啊,是是国外的一个红皮那那本书很薄,是非常薄,他就是专门用来去去研究这些正在表达式怎么去写的。啊,所以这个东西大家不用自己写了啊,你去百度一下需求就可以了。
46:04
行正的表达式,我就把它说完了啊,因为这个今天时间不够了,紧接着再往下我要给大家讲的就是我们注册页面上的校验稍等啊,我给大家稍微提一下。提一下我们下次课一上课咱们就来写这个啊。打开。打开打开打开,我们找一下register。同学们大家自己看一下啊,在这边看一下,你看比如说用户名,你看一下用户名应该为六到16位。数字。和字母组成是不是啊。数字六到16位数字和字母组成。这是一个正的表达式,大家自己可以尝试的写一写。第二个密码的长度至少为八位。至少为八位马。哎,表示范围是不是搞了一个大括号呀,次数嘛,然后至少为八位嘛,是吧,就这样子。邮箱请输入正确的邮箱格式,那我觉得刚才的页面我没关,那你就把这个拷过来。
47:04
行吧,同学们,然后做一个test,调用一下test测试到底是true还是false。是不是这样的行?啊,所以呢,咱们,呃,下一次课咱们进来进来说这个问题啊。
我来说两句