00:00
好,同学们,这一节呢,给大家介绍另外两个基本数据类型,一个呢是字符串啊,另外一个呢就是正则表达式,好,我们从这个字符串开始讲起,这个呢就很简单。呃,首先呢,写一个A,然后等于ABC。呃,把A呢传进来可以看到呢,这就是一个字符串啊。另外呢,如果你的字符串里面要包含一个双引号。啊,那么这个时候呢,你可以使用一个反斜杠,哎,对它进行转移,再次顶some。可以看到这个引号呢,没有被作为一个啊,我们语法里面声明字符串的标识,而是呢,被解析为一个正常的双引号。啊,那么注意啊,有些语言里面的单引号也可以声明字符串,但是在我们的flux语言里面呢,呃,这个字符串呢,必须使用双引号括起来进行声明。再一个呢,就是啊,在Fla语言里面呢,允许我们直接通过码值的方式来声明字符串啊,比如说啊,我这里面还是要声明ABC,但是呢,我这里面先打一个反斜杠,再打一个X,再打一个61,哎,再打一个反斜杠X62,反斜杠X63啊现在呢,点击撒的提交,我们看一下A的值是什么。
01:25
哎,可以看到ABC,也就是说呢,这个Fla语言里面呢,允许我们使用一个字符串,然后里面呢,使用杠X表示一个16进制码值的开头,啊,使用这种方式呢,来声明一个字符串,不过呢,这个太过小众啊,一般用不到这种场景。啊,那么这里介绍一下把这个其他类型的转成字符串的方式,就是我们之前说的这个string函数啊,我这里搜索一下,然后可以看到呢,这里有一个函数呢,叫做string。呃,我鼠标在这儿,然后截下图啊,注意。好啊,那么可以看到呢,这里面我们这个文档啊,弹出来这个文档,这个叫arguments参数的意思。
02:07
V这个参数呢,可以传递后面这些绿色的啊,是说这个V可以是这1234566种类型,所以说呢,也就是整数无符号整数浮点数布尔类型,持续时间还有时间点啊,这些这些类型的数据呢,都可以往这个函数里面传转成字符串,另外呢,这里我还要介绍一些啊叫string哎这个包,呃,首先呢,可以看到这个string里面,它其实有很多操作字符串的函数。呃,比如说这个contains s tr这个函数呢,它其实就是来判断啊,我们的字符串里面呢,是否包含某个字符串,这里呢,可以给大家演示一下,我敲这个strings,然后点一下,哎,可以看到呢,这里出来很多函数,其实都是用来操作我们的这个字符串的。呃,首先呢,我们去用一下这个。
03:01
Str。然后呢,它需要两个参数可以看一下啊,可以看一下这边呢,要是没有这个文档的话呢,就去这边搜一下。啊,可以看到有一个呢是V,然后这个说呢,这个string呢,挖里有to search,也就是说要从哪个字符串里面呢去进行搜索。啊,还有一个subs tr啊,这个意思呢,就是去这个字符串里面搜索是否包含这个子字符串,好那么我们现在呢,就去敲一个。呃,比如说我们在这里呢,敲一个上硅谷北京昌平,然后呢,哎,注意这个地方要写三说名V冒号啊,第二个参数呢,就叫sub subbs tr,我看大写吗。啊,S不大写好,写一个冒号,然后呢写昌平好,现在呢,我拿一个变量A把它给接住啊拿到我的表里面来,现在点击submit看一眼,可以看到这里面呢,哎,返回了一个布尔类型叫错,而且呢,也就是说啊,我们这个上呃上硅谷北京昌平这个字符串里面呢,包含昌平这个子串。
04:19
哎,我现在呢,把它改成武汉,再次点击萨提交,哎,可以看到呢,这个就变成fairs了。啊,Stress这个包里面呢,它包含很多关于字符串的操作,比如说我们可以再看一下啊,还有这个。比如说这个John string,再看一下John s tr。啊,你要是看不到这个自动提示呢,我们可以直接在这里搜John s tr。Joinstr啊,然后鼠标呢,在这悬停一下啊,可以看到这里面呢,要求你输入一个呃。字符串的数组,嗯,然后呢,还要再输入一个字符串,那么这个字符串呢,是用来拼接字符串的一个间隔符,分隔符。
05:05
好啊,假如说呢,我这里面啊,还没有给大家介绍我们的数组类型,但是这里呢,可以给大家先敲一下啊,在这里呢,我们直接用这个。呃,方括号就表示一个数组,接下来去,比如说这个叫上硅谷。昌平、北京。呃,后面呢,我给上一个参数叫V冒号啊,这里呢,我给上一个横杠。好,现在呢,点击萨看下效果,可以看到我们的上硅谷昌平北京呢啊,就被这个横杠直接给连起来了。最后呢,再介绍一种啊,比如说这个还有一个叫做is。Is letter这个掐下这个啊,然后呢,在这里呢,我们还可以看一下有没有这个自动提示,没有的话呢,直接去搜。
06:10
好,我这里呢,截个图。啊,这里呢,其实很简单啊,他说呢,这个字符串首先呢,必须只能有一个字符,呃,而且呢,他去干什么呢,他去判断这个字符呢,是不是一个,呃,英文的字母,接下来呢,我们可以去试一下,我先传两个字符试一下,比如说我传一个昌平。点击submit,哎,可以看到呢,这里直接报错啊,说这个V呢,哎,它的这个参数长度呢,不等于一,所以说这里呢,我们只给一个差,再次点击submit。好,可以看到啊,呃,这个地方呢,还是报了错,说这个参数的长度呢,不等于一,这是为什么呢?是因为我们汉字,而在编码里面,它的这个字节长度呢,就占了两到三个字节啊,所以说呢,这个地方你还必须呢,得给上这个一个能用阿斯克玛来表示的呃字符,比如说数字一点击submit。
07:08
哎,可以看到这个一呢,它不是字母,所以说这个返回值呢,就是files,哎,如果我给上一个英文A呢,再次点击submit。哎,可以看到这次的返回值呢,就是错啊,如果我这里呢,给上一个小于号啊,可以看到呢,又回到了我们的files,呃,那么stress包里面呢,其实还有很多函数,那么这个呢,留给大家呢,课外自己去研究。研究的方法呢,就是去看官方文档,我们去看一下。好,那么这里呢,是flux的官方文档,诶可以看到右上角呢,这是flu克斯,找到flu克X,然后再简在版本呢,只有一个。然后呢,在左侧啊,有一个这个呃,标准库可以看到展开啊,那么这里面呢,就是我们目前呢,所有可以使用的包,比如说刚才我用的这个string呢,你就可以点一下。
08:04
哎,好啊,那么这里面呢,就是strings的所有函数啊,你随便点击一个,比如说呃,我们刚才看到这个join join s tr点一下。啊,这里你就可以看到它这个哪些参数是必须的啊,参数的意思啊,以及它的一个示例用法,好,现在呢,回到我们的web UI啊,开始给大家讲这个正则表达式啊,正则表达式呢,我们之前介绍过啊,就比如说这个现在我写一个B等于。然后呢,以两个斜杠中间呢,是我们正则表达式的内容啊,这里呢,我写一个正则表达式ABC,竖杠BCD,竖杠EDF。啊,然后呢,我把A这个变量呢,换成一个字符串啊,比如说就叫ABCDEFG,好啊那么可以看到呢,其实我这里面呢,可以匹配到啊,A和B可以匹配到,现在呢用一个变量C,然后呢让A和B呢去匹配一下。
09:05
啊,注意我们匹配的这个,呃,操作符是等于号再加一个波浪线啊,这个一定要记住,然后呢,B。点击。啊,可以看到我这个变量的给错了,我往里这里呢,传一个C啊,传一个C,把C传过来。点击。哎,可以看到我这个正则表达式的意思呢,就是这个字符串里面,哎包含ABC或BCD或EDF。那么现在这个为此表达式的结果呢,就是错表示呢,我这个。正则表达式里面的东西啊,可以在这个字符串里面找到,但是很多时候呢,我们使用正则表达式呢,啊,不是说用它来判断这个字符串呢,是否包含或者说是否以什么什么开始这种判断的啊,我们有时候呢,希望使用正则表达式匹配字符串里面的内容呢,然后提取其中内容。那么这个时候呢?我们就需要学习一个新的包了,叫啊ridge X。
10:07
Reg,那么这里面呢,就有很多哎,关于正则表达式操作的一些函数。啊,在这里呢,我们可以往下找,诶可以看到有一个reg find string,那么这个呢,其实就是用来诶在看我们这个字符串啊,看我们这个被匹配的字符串里面,哎,是哪一个内容被匹配到了它呢?返回的是整个字符串里面最左边的被匹配到的内容。好,我现在呢,给大家演示一下。直接敲rep.find string。好,接下来呢,首先第一个参数R是我们的正则表达式啊,这里呢,我就直接把B传进来,第二参数V就是我们要被匹配的字符串,把A呢传进来。
11:00
好C这个变量呢,我现在不用了,给它删掉,用来接我们的。呃,这个反馈结果。C等于好,现在呢,直接点击submit。可以看到现在的返回结果呢,就是ABC。也就是说我这个字符串里面,我这个被匹配的字符串里面。哎,第一个最左边的被匹配到的内容是ABC,而我这个正则表达式的内容呢?啊,正则表达式的意思刚好就是这个字符串呢,哎,要么包含ABC,要么包含BCD,要么包含EDF,满足三这个条件的任意一个都可以通过匹配,那么这个时候我的字符串一过来,最左边最先满足的是不是就是啊,这个字符串里面要包含ABC,所以说呢,他找到的最左边的能够匹配上的内容呢,就是我们的ABC。啊,这个时候呢,我可以对这个字符串做一下修改,比如说我在ABCDEFGA和B之间呢,我加一个字符叫L啊,那么这个时候ABC是不是就匹配不上了啊,下一个接着能匹配上的是什么?是不是应该是BCD啊,我们试一下点击sum,看看这个返回结果是多少。
12:15
好,可以看到现在呢,返回的结果就是BCD,因为ABC呢,这三个字母不连着了,所以说呢,匹配不上,后面呢,看是不是包含BCD啊,结果呢,从这个第三个字母开始啊,就是BCD啊,刚好能匹配上,那么现在呢,最左边的能够匹配上的内容就是我们的这个子字符串叫做BCD。啊,那么最后呢,再给大家注意一件事啊,呃,我们把这个字,我们现在呢,把这个字符串。给删掉,然后把这个呃,之前叫的这个函数呢也给删掉,上面导的包呢也删掉。好,现在这个脚本都很干净,我呢把这个B啊,把这个智能表达式直接传到我们的这个表里面来,点击submit。可以看到啊,正则表达式这个类型呢,不能出现在我们的列数据里面,说明什么啊,说明这个正则表达式是我们flux脚本里面的啊,一个支持的类型,它并不是我们英DB里面可以存储的类型。
13:13
那么现在呢,如果想把它呃展示出来,我们之前说可以用display play,然后V冒号。好,直接点击submit啊,可以看到呢,直接可以把这个啊我们的正则表达式呢,转成字符串啊,但是这个把这个正则表达式转成字符串了,其实没什么用啊啊我们需我们需要的呢,是把字符串转成正则表达式,因为这个正则表达式呢,你可以看到现在通过这种语法呢,我在程序里面是写死的啊,如果说呢,我把字,我能够把字符串转成智能表达式呢啊,那么我就可以通过一个网络请求,去请求远地的一个配置表或者什么东西啊,来拿到那边的远程的一个正则表达式,拿过来之后呢,做一个啊实时动态可以变换的匹配的逻辑,呃,那么现在呢,给大家说一下怎么去干这件事啊,我说明一个变量A,然后等于现在呢,用一个字符串啊里面呢。
14:09
不要再打这个斜杠了,直接ABC竖杠BCD啊,那么这呢,就是一个我们,哎,符合我们要求的正则表达式,现在呢,我们把它变一下,要用到的函数呢,就是我们的这个regp.compel。哎,把它拿来。好,还是把这个管道服呢,给它删一下。啊,现在呢,我们可以直接把A传进来了。好,现在用一个变量B来接住我这个编译好的,哎,转换好的这个正则表达式。呃,现在呢,我们去用B尝试去做一下匹配,现在我声明一个新的字符串。就叫ABCEF啊,然后呢,我们去做一个匹配,试一下来直接用这个位次表达式。我呢,就不再说明新的变量了。
15:02
呃,直接呢,C等于波浪线。哎,需要等等,需要重新登录一下。好,C等于波浪线,然后呢,传传递一个值就是我们的啊,要被匹配字符串啊,要要用的这个正能表达式啊,这个C呢是要被匹配字符串啊,把B写过来好点击sum。呃,查看原始数据。呃,拉高一点。哎,可以看到呢,现在啊,就是我们的这个字符串呢,已经成功的被匹配为啊,被转化为我们的正则表达式的类型了啊,那么这就是我们整个正则表达式的一个玩法啊,关于regsp这个包呢,大家可以去参考文档呢,自己再去拓展一下啊,那么我们现在对这个两个类型的介绍呢,就到这。
我来说两句