00:00
好,我们继续来上课,那么这节课呢,我们再来看一下我们正则表达式的这个函数啊,那么函数呢,都不多,就这么几个,需要我们挨个去看一下啊,那么一样学函数学习那三点对不对,那这里面我还是新建一个文件,比如说叫做零九啊pat啊。直接它叫PG杠,FUNC放水。啊,这节课我们要学习正则表达式中的函数,那么咱说了只要是什么呀,这个能使用什么?能使用正能表达式了,不能使用字符串处理函数完成的,就不要使用智能表达式来完成,对不对?哎,那好了,那咱们现在来看啊,第一个就pig-GRP返回匹配模式的数组单元对吧?哎,与匹配模式与这个模式匹配的数字单元啊,比如说这里边我们来一个刀了。遭了啊。啊,等于什么A好了,在这个数组里边,比如说有什么呢?有一有二,有三有四。还有这个。你好对吧,还有我好对吧,还有这个,呃,你OO啊好了,比如有这些内容,那么接下来我定义一个Dollar PA。
01:08
TT等于斜线。杠D,杠D是不是匹配数字啊,对吧?好了,那我就是要匹配数字啊,那PG-TP我要匹配什么?匹配这个数组里面所有的数字,那P在哪?在这个数组中进行匹配,就我未必非要在自动串里边,对吧?它会给我返回一个什么,返回一个新的数组。也就是说与模式匹配的这个数组,那我们再来打印这个数组啊,打印高了new a啊,因为我说pap啊,不是玩数组就是玩字符串啊,所以它对于数组可以,对于字符串也可以啊,那咱们来看在这里边,我在这块。来。打开零九,你看返回模式匹配单元,你看带数字是不是都拿到了01236对吧,谁也拿不到,是不是四五这俩家伙,这两家伙没有数字都是英文版对不对,哎,那么一样,我可以CTRLCCTRLV再给它注释,再给把它注释掉啊这里边我还可以设置什么,设置第三个参数,当我设置第三个参数处的时候。
02:04
PE。第三个函数处的时候,那这个数候你再来看刷新返回什么,是不是与模式匹配相反的单元了,对不对,哎,所以这里边我们记一下在这块位置啊,如果。设置。第三个参数。处啊,则返回与模式匹配。相反的数组单元对吧?哎,这个是针对数组的啊,所以这里边默认是什么,是false对不对?哎,好,那再来看第二个叫什么呢?叫pig-split,它是什么?通过一个字动表达式来分割字符串,这是操作字符串的是吧?那好了,我们把它放过来。那咱们说了,比如这里面有字符串有个什么呢?ABCDEFGHIJK。LMNMOPQRSTUVWXYZ这一个字符串,那字符串里边,比如说咱要想分割的话,我们可以分割,比如说这里边111111,好了,给这么多一对吧,那如果都是一的话,我我有必要用正则分割吗?我是不是直接用X explo的就可以分割对吧?你要用分割符是谁分割服是一分割谁分割这个str分割完以后,它是不是会给我返回一个数组啊,比如Dollar了AR。
03:16
来VR。杠DP打印谁呢?打印这个刀RR好,那现在我们来看。刷新是不是拿过来了?对不对,通过一进行分割的吧,那好了,那如果这个字符串要改变了呢,这个字符串如果要长这个样子呢,比如说这里面啊一。三。四。五。好了,那如果要是这个样子的字符串,那我还能用它分割了吗?不行了吧,因为这里面数字是不是都是变的,所以这个时候怎么办,我是不是得用正轴表达了,到了PP等于斜线还是一样,给它一个杠D对吧?然后这里面开始进行分割,那PI-S。PI,第一个依然是我们的正则表达式,第二个我要分割的这个字符串,然后他给我返回一个新的字符串,新的数组,是吧,来ma吧,那这里面VR放D打打这个刀哇啊。
04:09
那这个时候我们再来看。设系你看跟它是不是就一样的了,对不对,哎,所以说当我的这个正值,当我的字符串处理函数完成不了的时候,我再考虑用什么用正则表达式来去操作啊好了,那再往下来还有什么much跟much,一个是进行一次匹配,一个是进行什么多次匹配的啊这两个东西来,其实我们对ma并不陌生的,Ma我们一直都在用,对不对?哎,它就是进行一次匹配嘛,比如说这里边来到了str,等于什么呢?等于一串字符,然后这里边有什么,有A有B,有C。对吧,好了,那接下来我在这里面想进行匹配啊,匹配什么呢?就匹配这个。字母啊,PA等于斜线,我这不直接中号A到Z就可以了,对吧?匹配任意一个,那pig如果我用PI-m MAT ch来匹配谁呢?跟这个德莱斯加进行来匹配的时候,你看好了,他给我返回值,返回什么,是不是返回的零和一啊。
05:05
VR跟do MP啊,当时我在用的时候,我是不是说了它返回的不是处和false,只是零和一,那你看是不是返回一个一,因为什么,因为我匹配到了,那如果没匹配到了,比如这里面我给它解决掉啊,来一行这个内容,那现在是不是没有A到Z的,那这个时候你看返回什么,是不是返回零啊对不对,哎,所以这里面我再还回来啊,这个家伙他的返回值。一表示什么呀,匹配。一次对吧,零表示。匹配零次,匹配零次是不是就没有啊,是不是就没有的意思,哎,所以这个家伙干嘛呢,适合。查询有没有四个查询有没有好,那同样这里边还支持第三个参数,就是把匹配到的内容给我对吧,STRSTR,然后逗号MAT ch MAT ch,我给他一个变量,那这个变量你看是不是也又传进来了,所以这个变量在这个函数内部发生改变,对应的外部我去打印这个变量是不是也是改变了。
06:02
BMP打印谁啊,打印Dollar ma,你看是不是也是改变的啊,来刷新诶是不也是改变的,哎,那好了,那这个。他完事以后,同样我们把它拿过来再看一下全局匹配啊,全局匹配它呢,怎么个全局法呢?你看好了啊,我们刚才查是不是只查一个呀,对不对,因为它只匹配了第一个出现的就是A,那么当我给他一样,他俩用法是一模一样的啊,只是后面加了一个杠二,当我用了杠二以后,这个时候我们再来刷新。那你看拿的是什么,是不是一个二维数组对吧?零下标里面对应什么?对应的是个ABC,是不是把我这里面的都拿过来了,对不对,然后返回值返回什么,返回一个三,我是不是进行了三次匹配,第一次拿到A,第二次拿到B,第三次拿到C啊对吧?如果在这里边我再加一个B。你看好了,这回是不是就四次匹配,是不是40匹配,你看abdc是不是按照顺序四次匹配啊,哎,所以它是个什么。查询。有多少啊,这个查询有多少,这就是普瑞马跟普马。
07:01
好了。那再来还有最后一个对吧,这个这叫什么,执行一个正常表达式的搜索和替换啊,这个用的还是。这个比较多的啊,比如这里面。好把它放过来啊,那么比如说我这里边执,既然执行嘛,一个自动表是速索和替换嘛,那我们是不是得有也得一样,我得先有一个什么,有一个字符串对吧,那比如说呃。那就刚才那个字符串吧,就这个字符串啊,这里面是不是全是数字啊,对不对,那既然全是数字的话,好。来,我是不是可以得用正则一样,我要匹配到了P等于等于什么等于这个。点杠D找数字斜线斜线啊,那么找到这个数值以后干嘛?我把这个数字替换成五角星啊,那PI-re,对吧?第一个还是我正德雷达式对吧,你要找谁替换成谁呢?替换成五角星。五角星在哪个字符串里面,在这个字符串里面进行操作,然后他会给我返回什么,返回一个新的,比如说到了new SR。
08:05
好,然后我们来为R-DP,我们打印这个新的字母串啊。然后new str,好了,现在我们再来看找你,你看所有的数字是不是都被我替换成五角星了。对不对,哎,那等于同样他也可以干嘛,支持第四个参数am,我们再来打印第四个参数A。诶,它不支持第四个参数吗。好,不支持是吧,你看这回打错报错。是不是定义报错了,哎,他不支持,不帮我去做,不告诉我他被替换了多少次,对不对,也就是他只支持什么,只支持三个参数啊,只支持三个参数。我买的。删掉了哈。Limit。限制。诶,它有第四个参数啊,来我们看一眼啊,叫做PG-ma,不对,叫杠rece,它的第四个参数limit米为负一,来看一下它的第四个参数是怎么做的啊。
09:02
每个模式在每个这个上进行执行的最大替换,默认是负一啊,无限替换啊,我可以指定它的,然后这个如果指定将会被填充完成替换的次数,对吧?那也就是说这里边我需要什么,比如说先给他一个负一,让他无限替换对吧?负一完事以后我再到了对吧?那这个时候我再来打印这个um,你来看啊。走,你告诉我替换了几次,替换了六次对吗?这里面一俩3456是不是替换了六次,哎,这个负一是无限替换,也就是说一直替换完,那好了,我告诉他,我让他指定替换四次对吧,那这个时候再来看。刷新你看五跟六是不是就没有变化,前面的是不是都变化了,然后替换的次数是不是给我拿到了,看到了吧,哎,这就是这个功能的作用啊,那么一样,我们给他它的参数比较多的吧,前三个我不记了啊,那这个可选参数和。选参数三表示什么意思啊,表示替换。
10:02
几次对吧,负一表示无限。替换啊,默认默认值对吧,然后再来可选参数四,哎呀,不对,应该是五。一。2345对吧,那这个就是可选参数四啊,这个可选参数五对吧,表示什么呀,这个引用。船。参啊,表示替换的次数,替换的次数啊,好了,那咱们来看我把它注释掉,还记不记得我们再去讲字符串的时候,我们也用过一个例的,比如说用它也一样可以在数组中进行替换啊,比如说这里面刀A等于ay啊,就是这里边。什么呢?蜡笔还是蜡笔小新吧,来蜡笔小新的例子啊,蜡笔小新叫什么名对吧?叫什么呢?叫这个野原。心知。就。好了,这是一个元素,再来蜡笔小新的爸爸叫什么名啊?叫野原广志。
11:05
然后再来蜡笔小新的妈妈叫什么?名叫野原美芽。然后再来。蜡笔小新的爷爷叫。什么名叫野原银之界?好了,那现在这个数组我们是定义完了,定义完以后一样,我要这个查找什么东西,我查找也可以做一个数组叫什么呢?比如说这里面到了这个,呃,P。对于正则进行匹配的,对吧,那好了括号。AI啊括号,然后我要找谁呢?我要找斜线,比如我要找蜡笔小新对吧,然后还要找谁呢?还要找他的称呼,比如说这个就它。以及。他还有。
12:03
对吧,然后还有。这个页圆好了,这些是我要找的,那么找完我要替换成什么的刀了,这个P等于ay一样,我也给它数组,比如说蜡笔小新,我要替换成什么,替换成,比如说替换成这个孙减肥对吧,然后呢,这个英文呢,我们呃这个中文呢,我们给它替换成英文的。Fat the fat好,然后最后一个什么,最后一个是不是就是这个野原,我们给它替换成什么归田。硅填好了,那开始进行直径替换了吧,到了S到了这个。呃,VR吧,等于什么呢?等于pig-ma啊不对,杠这个Rep先是找谁找这个P,然后呢,替换成谁,替换成pce在哪里呢?在这个我是不是叫A这个数组。转压对吧,那就是在这个Dollar AR中进行替换,好了,我这三个就够了啊,然后我们来打印,打印出来打印这个刀哇,那这个时候我们再来看刷新,来看数组,你看孙建奎叫什么龟田新之书对吧?孙建奎的发龟田同字,然后孙奎的发龟田美呀,还有孙建奎的father的father龟田银之间是不是都变化了。
13:19
哎,这就是咱们替换的这个函数啊,那么一样,其实我们在现实中有很多东西都会用到它,你比如说我们是做那个聊天表情,你比如说你通过手机对吧,你点开微信,然后你是不是一点个图片就发送给别人了,对吧?那你想如果在外B端,在我们这个网页端,网页端我们发送图片怎么发了,你不管怎么样,你最终发这种图片,图片显示是不是依然有以面标签来显示的,对不对啊,也就是说网页里面只能用面体标签显示图片嘛,那也就是说。在这里边你看好了,我拿到了一个图片,看到吧,123这里面有三张图片对吧。这里面是不是三张图片,哎,我在这里边咱们来看,我们也做一个模拟这么一个效果啊,来我新建一个这个PC文件啊,比如说叫做tr p LK talk是不是聊天对吧,然后这里面呢,就是一个表单啊那。
14:07
把我们不认识的先删掉。好了。Fom放表单,然后method用post的方式传输,然后呢,在这里边,呃,来一个什么呢,叫做叫做do-TK加P。点P啊,我们来做一个聊天的啊,比如说input的,你得有个输入框嘛,Test那名,比如就叫str的啊,然后再来一个input的S。点击这个发送发送对吧,跟谁聊天,是不是跟这个页面进行聊天了,这个页面进行处理对吧,跟就谁在这里面,我们来新建一个这个页面啊叫它好确定,那有了这个页面来VR钢DP我们进来干嘛呀,打印这个Dollar下线post里面的SSPR。SK好了,那一般情况下啊,我们的表情,虽然我们选择上来看到的是那个表图片,实际上它会对应的一段代码了,那怎么对应代码呢?是这样的,你看好了,我给你直接写啊,因为现在咱没有什么案例,咱们微信上外部版也上不去了啊,如果能上外部版,咱微信上外部版是最好最容易看出来,一般都说比如说这个你好。
15:11
标签吗?你好,对吧?在吗?在吗?后面可能带个表情,那个表情,那个表情我们虽然在这里边能看到,但看到的也是一样,是以面积标签对吧?其实我们是什么?当你选了表情时候,实际上这个位置,比如说就是一个微笑对吧?所以它就是表情,那么当你点击发送过来以后,是不是变成这样了,那他就会找这个内容,当你找到微笑以后,他会去干嘛,替换成对应的图片啊,就是执行这么一步操作,这就是咱们聊天表情的这个原理,所有在网网页版的聊天表情都是这个原理啊,都是这个原理,那你看在这里边啊,我们一样在里边咱们先定义匹配的内容,对吧,比如说嗯。到了,呃,PA等于一个数组对吧?当然我们图片肯定会有多个,不可能就一个对吧?切线这里面找谁是不是找他,但是这个东西在这里面是不是有意义,它是不是原子列表啊,所以我需要给他转移,比如说我们有什么表情,有微笑。
16:02
哎,然后这是一个再来。还有什么?还有这个,大笑,别大笑了,来个玫瑰吧,玫瑰。然后再来还有什么,还有这个。叫做爱你哟。按钮好了,就是找这三个,因为我只有三张图片啊,那对应的替换到了。到了PL。ACE等于A,哎,你要替换成什么呢?那我肯定是替换成图片嘛,那比如说这里面叫做。底面积src对吧,当前目录零一好。这里面逗号,然后CTRLCVV3个。好了,那这里边就是零二还有零三,我们不用管图片它到底是什么意思对吧?只需要知道它这里的原理就可以了,那这里边开始执行计画了吧,比如说刀SSPR,等于对Dollar s Dollar new s spr啊。等于什么呢?等于pig-rece,你要找谁?我要找的是它,你要替换成,替换成它在哪里,诶替换成pce,那哪里进行替换呢?在我的这个。
17:09
到了下划线post里面的str中进行替换,对吧,替换完以后我来输出这个聊天的内容,那你看是不是就是这个原理啊,返回来我重新刷新你,我说你好。在吗?微笑是吧?一点击发送,你看你好在吗?微笑,诶,他告诉什么必须。是怎么样,在我的第三行13行我的这个边界。嗯。P等于A。嗯。转移了,他也转移了,转移了转移了转移了转移了哦,最后我这个是不是没给什么呀,没给增则呀,哎,边界符给错了是吧?好了,那这个时候再来,我说我们报边界符的错,我们再重新刷新确定,你看你好在吗?是不是变成这个图片了,对吧?哎,同样反回来比标你好在吗?啊,我换一句我叫做这叫今天。
18:14
挺高兴的,挺高兴的,晚上可以约。约你嘛,对吧,然后给他发一个玫瑰,是不是这个意思,哎,那这个时候来点击发送,那你看完了肯定约你嘛,你看这表情肯定约不着了是吧?哎,这就是咱们聊天表情的原理,所有在网页中发出的原理都是这么,都是这么进行替换的啊,都是这么进替换的,包括我们之前说了。我们是不是还能做这个BBS编辑器,对吧,那什么样叫BBS编辑器呢?来百度。到了BBS。编辑器啊,就是论论坛的那个编辑器嘛,对吧,那这里边。看看有没有在线的啊。来在线。对,他就是这就是你看啊,在这里边我来输入内容叫什么教我做。
19:05
在工作中学习,在学习中工作,对吧?融职教育欢迎你,然后HTTPS冒3W点百度点。com。Edu work.cn啊好了,这是不是一个链接呀,对不对,那我可以在这里面干嘛,给他标注一下,你看这块,哎不是他是他吧。你看超级链接。这是加超级链接啊,这块是不是带链接的插入文件啊。行啊链接,那这样吧,我给他一个下划线,这是不是像链接了对不对,哎,同样这里边有融资教育,我给他干嘛加粗,加粗完之后还可以干嘛,给他变色看到了吧,哎,那么这里边也一样,我可以干嘛斜线对吧,可以变成什么下划线。对不对,但是呢,注意我不管所有的操作,最终它是不是都要转成Abt班标签的对不对,你看在这里边有个预览啊,点预览,预览以后你看是不是我该有下划线,有下划线该斜底的斜体该加粗变色变色对吧,该有这个链接效果,有链接效果是不是这样的一个情况,哎,所以这个时候注意了,这个时候也是相当于我们在这里面任何的编辑,你不管怎么编辑,包括我都在这边添加个表情,来添加个这个表情,你看一添加一个表情,当然我们看不到源码啊,看不到源码,因为这个它这个不支持源码。
20:19
我看看哎,他买代码了。所以这里面它是直接给你转H8代码了,对吧,其实最终我们是不是也要把它转成H千8代码才对啊,对不对,哎,那好了,我们给它还原回来啊,还原回来咱们来看,我给这个复制出来,放到我编辑器里边啊,我给你做一个你来看。咱们只需要知道这个原理啊,叫做什么呢?叫做10BBS。好了,比如说这里边有个Dollar s tr s tr等于什么呢?就等于这么一个字符串,也就是说任何人编辑个东西,它就是就是就是这么一个字符串,但是呢,我们可能有一些比如说在这里面啊,来一个什么呢?来个color。然后这个。呃。字体的颜色。
21:01
等于,等于什么呢?等于这个井井号。比如说井号这个F00嘛,啊,然后再来一个结束的卡,诶,比如说啊。就是我们在前面,就好比在这块,我一选择完以后,它就实际上就相当于我这块给我加了这么个标签,明白什么意思吧,然后比如在工作学习变成斜体了,那可能就是一个I。这块也来个哎。对吧,然后比如说在这个融资教育这里面是不是还加粗呢?哎,比如说这块再来个B。然后在这里面再来一个。结束的。然后呢,同样这块要就要结束了,哎啊,那同样这块内容还有什么,是不是咱也给了一个下划线,对吧,我们没给他从链接给他下划线,那下划线比如说我给个U。然后在这块再来一个结束的U。结束的U,好,那你看是不是这么一个字符串,那最终这个字符串,整个这一个字符串我在这里边,比如说在网页中IO出来,IO出来以后是不是对应的替换成A上面标签才对呀,对不对,你看比如说在这里边啊,返回来。
22:06
把它去掉,在我的10BBS里边,是不是要替换成对应的标签才可以啊,哎,那怎么能给它替换成对应的标签呢?那一样呢,在这里边你定义一个Dollar PA等于。A还是等于什么等于一个数组对吧?我先要找找谁呢?找这个。I。结束的,哎,对吧,找他,然后把它。该转移的是不是都在转移啊,转移转移对吧?I中间的内容是不是括号点星问这是不是一个整体的内容啊,对不对,那同样这里面我们加上边界符,不然一会儿又该报错了啊,然后加一个大S让它加速匹配对吧,然后给它替换成什么呢?到了这个re。呃,Pce吧,等于A啊,给它替换呢,替换的东西,那是不是就是把这个I要替换成I标签的,结束的I标签是不是替换成它呀,对吧,那好了,那现在我开始进行替换啊,比如到了SSPR。
23:01
到了new s tr,等于什么呢?等于这个,呃,PI杠。Re,你要用哪个,用这个替换成什么?替换成P在哪里,在这个字符串中进行替换好了,替换完以后我来输出这个new s tr,这个时候我现在只是替换了一个,对吧?只替换一个,最后一个咱就不需要加这个分号了啊好了,那这个时候你来看可不可以刷新。听话了吗?我想给他一个B来这个输出完以后给他一个BR换行啊。来吧,找什么东西?是不是把整个这个东西给我整没了,哎,因为我这里面才说了,我找到这个I,找到这个I是找到这一句,我替换成了这个I,在这个I中间是不是要有内容,有什么内容,是不是要有在工作中,在学习中。工作是不是要有这段内容啊,对吧,那这个时候你看刷新这是不是才对的。对吧,哎,那但是这个内容不能做,我自己手打上,我是不是要引用括号里这个东西啊,对不对,所以这个时候我们这个括号了,第五个作用就出来,怎么样反向引用,那这里边你看这是不是第一个括号管理这个括号里的东西怎么办呢?我可以通过刀了。
24:09
啊,这里面是不是第一个括号,那就到了一,如果是第二个呢,那就到了二,啊,那到了一来引用,那这个时候你看我的I是不是有了刷新。是不是就有了,哎,那好了,那这是不是就在括号的辅助下进行反向引入操作了,哎,好了,那再来,那这只是其中一个啊,那再往下写。大S,还有什么呢?你看还有color对吧?C玩的话,Color找到color等于等于这个颜色是不是要提取到,所以括号点星问,然后。再来一个结束的C法看了对吧,然后两个看了标签中间的内容是括号点行问我也要到对吧,然后该转移的我们要给他转移。专业。转移转移。还有这个,所以好了,那这个是不完事了,那这个color最终我们替换什么,咱是不是得替换成放的标签啊,对吧,放到标签里面是不是有color对吧?结束了放的那color了,Color了,Color了应该等于什么颜色,是不是就等于第一个括号的颜色,那第一个括号我就可以干嘛高了一啊,或者是杠一,杠一也行,杠一杠二也可以啊,比如这里面有杠一了,那第一个括号是杠一是不是给的颜色值,那第二个是不是这里的文本内容,那它就是什么杠二呗。
25:16
是不是杠二。那OK,搞定了,搞定以后现在你看我的字体颜色啊来走,你颜色是不是变了,颜色变以后这样B大圈是不是还得替换呢?那再来。再走。找到B。结束的比这里面再来括号第二星问。好了,转移转移。转移转移转移好了,把B标签我们替换成什么,是不是替换成。这个。B标签结束的B标签对吧,那一样,这里边我是不是要引入这个正则中的第一个括号,那是不是继续我还可以干嘛继续杠一啊对不对,哎,那现在再来刷新,你看是不是加除也有了,哎还有最后还有什么,还有U标签吧,那有U标签,那这里面继续。
26:01
S啊中文号。中号结束的U。这里面一个U,然后中间括号。第二星问,然后转移转移。转移。这个用法了,应该是它对吧,然后这个一样转移,转移好了,那它完事以后,那接下来把它要替换成什么,替换成我们对应的U标签吧,U,然后一样引入第一个括号里的我继续杠一,然后结束的U是不是就可以了,那现在你看我这个字符串你发送过来是不是变成刚才我们看到的效果了。对吧,哎,这就是BBS编辑器的原理,也就是说其实我们在这选择的什么东西,它最终都是干嘛,都是网上给我加上对应的标签,明白吧,哎,就是这个意思啊,好了,那么一样,我们通过函数的这个帮助,也可以在这个什么呀,也可以将括号的内容做什么做反向引用操作啊,这就是咱们正则中的所有的内容了啊好了,那这节课就到这里。
我来说两句