粉丝8934获赞5.0万

分享一个提取数字并求和的问题,我们现在需要从这些消费记录中提取出所有的数字,并进行求和。好,这种问题呢,用正则表达式函数就行了,输入等号,写 r e, g 开头的这个函数,然后选择这里的消费记录逗号。第二个参数呢,是匹配模式,我们放到双引号里面, 然后在这里面呢,写上方括号,里面呢是零到九,我们提取零到九之间的数字嘛,还有小数点,所以输入一个点就行了。然后接着呢,在这个外层呢,再写上一个加号,表示提取连续的数字 逗号。第三个参数呢,输入一啊,表示获取所有的匹配项,然后右括号敲回车,这样的话,我们就提取到了里面所有的数字。当然现在提取的结果呢,它是一个字母串格式啊,因为在单元格中呢,它是靠左对齐的,数值格式呢,是靠右对齐, 所以说我们在整个结果后面呢,乘一个一,把它转化成数字。好,最后呢,我们用 sum 函数求和,写一个 sum, 好, 再写一个右括号 敲回车,这样的话,我们就提取到第一条消费记录中的所有数字,并进行了求和。接着呢,你把公式双击向下填充一下。好,这样的话我们就得到所有的求和结果。

啊,大家好啊,这一节呢给大家分享一下如何利用啊,正则表达式函数从文本里边提取数字啊,现在呢我们有一个势利的文本啊,这里边呢包含了一些关键的一些数据啊,现在我们把这些数字呢给它提取出来, 好啊,我们等于,然后在 excel 里边呢是 rex extract 啊,那么 wps 里边呢,它实际上是只有一个 rex 函数,它是通过呃其中一个参数的配置来 匹配这个 excel 里边这三种不同的这个状态啊,所以大家要区别去使用啊,现在呢演示的是 excel 啊 rex extract 啊,这个意思呢,就是从里边去提取数字啊,就比较直接 好啊,要提取的目标呢就是我们的这个本啊,然后现在呢我们来构建表达式,首先呢是一个啊转移的斜杠啊,然后 d, d 代表任意数字啊,代表任意数字,然后加呢是任意一个或多个数字啊,是这个意思。 然后呢如果有小数点的话,我们还要转移一个,嗯呐,有一个点呐,有小数点,我们需要一个点,这个点呢,如果是小数点的话,通常他只有一位啊,所以我们用问号来表达他是一位。然后呢啊,小数点后边的它有数字的话呢,我们还需要一个 d 啊,加星号, 星号的意思是啊,零或多个数字啊,星号的意思是零或多个数字,但这里边呢我们还有一个百分比的符号啊,这里面我们要把百分比的符号呢也统统给它提取出来,否则这个数据呢就不统一就乱了啊。所以呢, 我们这个地方呢要加一个百分比的符号在这,那么百分比的符号匹配几个呢?还是匹配一个啊?就是这个问号 好了啊,这个就是我们要匹配的规则,然后呢我们来去用双引号给他引起来啊,然后括号好了啊,就这么两个参数就可以了,然后回车啊,然后我们就可以填充到底啊,把所有的数据我们匹配 出来啊,非常非常方便。如果说我们不需要这个百分比符号啊,我们只匹配在前面的数字的话啊,这里边我们稍微改一下就可以了,把后边这个百分比的匹配给它拿掉 啊,直接,然后回车啊,这个时候呢我们匹配的数字呢,就百分之符号就没有了啊,纯的数字啊,就是这样的一个状况。好啊,这个接下来给大家分享到这。

欢迎来到甜酱百味正则课堂初级篇,本期为微软 excel 用户介绍一下 excel 中可以使用正则的几个函数。目前可以使用正则表达式功能的 excel 版本只有 microsoft 三六五, 由于此版本使用门槛高,实际用户非常少。 excel 中正则表达式语法功能却比 wps 要多很多, 一方面因为 wps 阉割了许多语法功能,并在部分场景下存在 bug。 另一方面因为微软紧跟当前 pci 二正则引擎的更新进度,可以体验到很多新特性。 excel 中正统的正则函数有这三个,如同字面意思,三者分别用来执行提取、判断和替换。此外,在 x look up 和 x match 函数中,也可以通过将相关参数设为三来起用正则表达式匹配功能。 首先我们来看看提取函数。第一参数,只需要处理的自辅串,可以直接选择单元格或手动输入自辅串。 第二参数是正则表达式,也就是我们要学习的核心内容。正则表达式的本质也是一个字母串, 所以手动输入一餐或者二餐时必须加上英文双引号。第三、第四参数是可选参数,所以输入完第二参数就可以得到结果了。我们尝试在二餐输入田字,就可以提取出一餐中的田字。 这里和 wps 政策函数的最大区别就是同样只填写一三二三, wps 会执行大局匹配,将所有符合要求的内容都提取出来,而微软默认只提取第一个值,所以这里我们只能提取出一个填字。 如果希望把所有填都提取出来,就需要加上第三参数。第三参数有三个值,零是默认值,相当于我们只填写一餐二餐,所以一般是用不到它的。三餐填一就可以执行局匹配将所有填字提取出来了。 这里天将再次提醒,尽管有时候你会发现一三二三不写双引号也能匹配成功,但那是因为 excel 软件智能对纯数字和纯波尔值进行了文本化转换,请千万不要依赖这个功能,好好的写上双引号哦。 那么下面我们看三三选二是什么意思呢?在 excel 中,这个参数值的提示是捕获第一个匹配项的组,翻译的非常迷惑,不过将焦点移到这个选项上后,会看到一行小字,仅返回第一个匹配项的捕获组, 这句话就很清晰了。为了了解这个选项的作用,田将需要给各位还没有开始学习政治的朋友们提前讲解一个小知识,那就是补课所的基本概念。 例如,我们用提取函数在一餐选用这个字母串,在二餐里写上田将喜欢吃烤肠,那就可以提取出这七个字。 在正字表达式中,英文的小括号是一组特殊的字母,它们有特定的语法含义,那就是补货组。它可以记录下括号范围内匹配到的字母串,以便后续对其进行引用。 例如,我们用小括号把喜欢和烤肠分别都括起来,这时提取结果并不会变,但正字表达式在匹配时默默记录了喜欢和烤肠两个词。 我们可以通过在三三填入二来让函数值返回补货组的内容。就像这样,由于我们设置了两个补货组,所以返回值就是两个。 如果我们像这样将括号嵌套起来,形成三组括号,就会诞生三个补货组,返回喜欢,喜欢三个结果。如果没有设置补货组就会报外流错误。 可以看到错误提示时,在模式中找不到补货组。需要注意的是,三餐为二十返回的补货组一定是首次匹配的补货组。 例如,用喜欢吃这个政策表达式匹配这个自扶串。如果开启全局模式匹配,将会发生三次,所以返回三个匹配结果。 如果你这时将喜欢两字扩起来,试图返回补货组,那么只能返回首次匹配的那个补货组,所以只有一个喜欢。 因为当你把三餐改为二,那它作为一的局匹配作用也就同时消失了。因此,提取补货组和局匹配二者不可得兼哦。 总之,三餐为二用来提取首次匹配的所有补货组。这个参数的存在提升了政策表达式提取的灵活性,是 wps 没有的功能哦。 在学会了更多正则语法后,你就会感受到这个功能非常方便使用。最后一个参数很简单,默认值是零,和省略第四参数的效果相同。一旦这里填上一,那么我们的表达式就会以忽略大小写的模式进行匹配。 例如表达式中写大写的 cat 时,在这个字母串中找不到任何结果,但是四三写一时,就可以匹配出这里的各种大小写形式的 cat。 这个忽略大小写的功能其实在正的表达式内部也可以控制。用四餐开启的忽略大小写也可以在表达式内部将其关闭,又或是重新开启,所以四餐的存在感是非常低的。甜酱甚至觉得把这个参数删除都可以。 好啦,提取函数全部讲解完了,下面看一下非常简单的判断函数 rex, 后面跟上一个 test, 就 变成了判断函数。 它的一餐和二餐与提取函数的规则和要求都一模一样,而三餐就是忽略大小写功能和提取函数的四餐也一模一样, 所以参数方面就不再重复讲解了。判断函数的功能是用二三的正则表达式,试图在一三次复串中找到匹配的内容, 只要找到哪怕一个函数,就会立刻返回不尔致 true。 比如我们把表达式写成甜酱或者很甜都能找到结果,所以都返回 true。 而如果输入 l, 那 么在一餐中就找不到结果,意味着表达是不匹配,所以返回布尔值 false。 这里的布尔值返回结果可以直接用于 if 等函数的判断条件。比如这样,根据是否匹配成功返回特定的内容。也可以根据需要把布尔值转换为文本,又或者让它变为数值参与计算。 这就是判断函数通过测试一三次复串中是否能找到匹配二三的内容来返回 true 或者 false 两个不二值之一。 接着来学习一下替换函数,把后半个单词改为 replace, 就 变成了替换函数,它的第一、第二函数依旧和前两个函数一模一样。 第三参数用来输入替换内容,他也是一个正在表达式。替换函数的作用就是把一餐字母串中和二餐匹配的内容替换为三餐。 比如这么写,就会把字母串中的所有甜替换为辣,其中没有被匹配到的字母,比如降狠两个字就会留在原地。如果整个字母串全都没有被匹配到, 比如把辣替换成酸,那么整个字幕串将毫无变化。如果三餐这个替换内容留空,就表示把匹配到的内容替换成空,相当于删除匹配内容。 比如这里匹配到的两个田字就消失了,但注意这里三餐前的逗号是不可以省略的。三餐这个正在表达是有自己独特的语法,可以用来对匹配到的内容执行引用、移动等操作。 由于微软正则比 wps 提供了更高级的功能,除了这种日期格式转换、添加千分符等基本操作外,还可以操作字母大小写,比如将英文段落里的所有字母大小写反转, 同时还可以使用条件替换功能,从而根据匹配情况执行不同的替换效果等等。 我们注意到,替换函数还有四餐、五餐。第五参数,忽略大小写没什么好说的,我们重点关注一下第四参数。 仍用把甜替换成辣的例子,默认情况下,字复串中所有甜都会被替换,而第四参数就是用来控制你希望替换的项目。 填入零就是默认值全部替换。填入一表示只替换第一次匹配到的内容,所以这里只替换了第一个填。同理,填入二或者三,将只替换第二次、第三次匹配到的内容。 如果填入的数字超出了实际匹配发生的次数,比如填四,那么将不会执行替换。如果填入的是小数,将结尾取整,以整数部分为转执行替换。 除了正数,还可以填入负数,负数表示倒着数,所以填入负一,将只替换最后一个匹配项, 填入负。二,只替换倒数第二个匹配项,以此类推。这也是 wps 中没有的功能。如果你希望替换只发生一次,那么很可能就用上这个参数喽。 微软在开放政策函数后,为 x look up 和 x match 两个函数新增了政策表达式匹配功能。我们先看一看 x look up 函数,众所周知,它基本可以视为被 look up 函数的尚未替代, 由于他的用法和技巧实在太多了,天降针对正则部分点到即止。如果你还不了解这个函数,可以先自行学习一下基本用法哦。 在最常规的使用场景中,假设我们想在这两列的数据表中找到麻将二零二四对应的 b 列数据, 那么应该在一餐写上麻将二零二四,二餐选择 a 列数据,三餐选择 b 列数据,就可以找到麻将二零二四所对应的这个 lovely。 在 函数第五参数匹配模式中,可以写上三来开启正则匹配模式。这样我们就可以按正则语法实现模糊匹配、多条件匹配等复杂需求。 例如,现在想找到要么包含辣酱,要么包含二零二三的首个符合要求的 a 列对应的 b 列内容,就可以把一餐查找内容改成辣酱竖杠二零二三。顺带一提,这里的竖杠是获者的意思, 这样就返回了 sweetie, 因为这个辣酱二零二一是首个满足要求的,尽管它没有二零二三,但是它包含了辣酱。 当然,也可以结合第六参数,把第六参数改为负一,从而反向搜索。那么从下往上看, beauty 这行就是首个满足要求的。 如果需求稍微复杂点,可以用这样的表达式找到甜酱或者辣酱,但是要求后面不能是二零二四的项目, 等甜酱带你在后面课程中学会更多语法后,无论多复杂的匹配方式,咱们基本上都可以写到这个 x look up 函数的一餐中。 其实 x look up 就是 在用一餐的正则表达式对二餐列表中的每个单元格执行类似 reactx test 的 判断操作,找到 true 的 那个, 剩下一个 x match 就 简单了。 x match 函数用来在一个数值中找到查找值的相对位置,它只有四个参数,可以将三餐设置为三来起用正则表达式匹配功能, 我们可以直接把刚才那个 x look up 函数的公式复制过来,然后删除中间两个参数,再改一下函数名,就可以直接用了。 x look up 函数是在三餐的数值中返回对应的值,而 x match 直接返回找到的那个元素在数值中的序号,所以这里返回的是辣酱、二零二一对应的序号。二, 只要理解了这两个查找函数原先的用法,那么正则匹配功能也就非常好。懂了, 查找函数就讲到这了,我们把关注点放回前三个正同正则函数,它们中每一个参数都是支持数值的,而 wps 只支持一三和二三数值形式。例如提取函数一三可以选择这两个单元格,从而返回两个提取结果。 不过不管你是否开启了三次提取,无法提取出所有数据。 比如从这两个字母串中只能提取各自的首个填,像这样,在二三使用数组就可以对同一个字母串按多种不同正字表达式提取内容,不过每个表达式同样也只能执行单次提取。 又或者可以在一三使用纵向的数组,在二三使用横向的数组,结果将返回二维数组,用每个二三元素分别去匹配一三字母串。三三、四三虽然也支持数组,不过实用意义较小,大家了解即可。 另外需要关注的是,替换函数的三层替换内容。支持数组对我们替换的灵活性有很大帮助,比如对甜酱很甜使用匹配表达式填,然后把替换表达式写成数组形式,就会像这样把填替换出多种不同结果, 这在 wps 中是不允许的。如果再把匹配表达式写成横向数组,比如填和很替换,就会执行二乘三,等于六次返回六种结果。 好啦,配合数组的许多玩法和细节,就等大家自己探索吧。本课程后续内容也几乎不会用到数组,我们的重心还是放在正则语法及匹配原理上,所以即使不怎么懂 excel, 也无需担心。 不过咱们还是要了解一下函数可能返回的错误值,这样才方便出错时的调试。 与 wps 不 同,微软正在函数返回的错误值分类清晰,且有明确提示,只要是提取函数找不到匹配内容时,都会返回 n a。 错误,比如这里找不到填,就会返回 n a。 如果你把鼠标靠近绿色小三角,能看到具体错误原因。 根据软件版本,这里的提示风格可能会不同。在几个月前,微软三六五还需要将鼠标悬停在叹号标志上,才能看到错误原因。 比如我们在表达式中单输入一个加号,这在政策中是不符合语法的。函数会返回 y 六错误,提示中会说明是编辑器错误,并且告诉你了具体原因。 再比如我们输入单个左括号,他也会告诉你缺少右括号。包括替换函数中替换表达式的错误也能够准确提醒,比如这样看看这提示多贴心,他真的我哭死。 我们之前介绍的提取函数三三写二,试图提取补货组时,如果没有补货组可以提取,也是报 v 六错误。不过绝大部分情况,你只要看到 v 六错误,就知道八成是自己表达式写错了。 如果是 n a 错误,那就确实是找不到匹配项,具体也可以查看错误提示,进一步确认。这里错误提示的文本量天降保守估计也有好几百条,请好好利用它吧。 在 w p s 中,如果一三二三不填任何内容,会报 y 六错误,而微软中则不会。所以函数如果写成这样也是没有问题的,一二三都默认是空字符, 虽然你可能觉得有点奇怪,不过参数留空的用法还真是会实际用到的哦。 既然也到了尾声,那今天的作业就是尽可能分别想出来函数一餐、二餐以及替换函数的三餐。这三个参数分别在什么实际应用场景中会有可能留空呢?举一例说明。另外,什么情况需要多个参数同时留空呢? 好啦,课程也挺长了,天降也讲累了,今天就偷个懒不总结了吧。大家可以根据分段章节跳转到相应内容回放观看哦!

少壮不努力,老大走商杯。今天的案例是把这样不规范的数据做成这样统计,一个一个效果,我们可以看到这个单元格里的数据非常的不标准啊,每一种水果和数量都放在了同一个单元格里面,我们要把它做成二维表, 我先来把现在的结果清空,在单元格里输 reg x 函数,第一个参数就是我们要提取的单元格。第二个参数我们给一对双引号,可以看到水果名称在数字的前面,所以我们可以提取数字前面的文本,所以可以输入一对括号,以此输入一个问号等于号, 然后输入一个斜杠和字母 d 啊,所以这代表提取以数字结尾的内容。 我们在括号的前面输入一对中括号,里面输入一至和,然后在中括号的外面输入一个加号,整体意思就是提取以数字结尾的所有文字。由于我们要提取全部符合条件的文字,所以第三个参数输入数字一。 值得注意的是,在 wps 版本当中默认提取所有项,所以不需要输入第三个参数。回车之后可以看到所有的水果名称就被提取出来了, 接下来我们还要提取对应的数数量,这里我们在第一个表达式的后面输入一个数杠, 这代表货的意思,然后输入一个斜杠和字母 d, 一个加号,然后回车看效果。可以看到所有的商品名称和数量已经被提取出来了, 为了规范数据源,这里我们需要把它转为一维表。在 regx extract 函数前面嵌套一个 rap rose 函数,让 regx extract 作为 rap rose 的 第一个参数, 因为我们需要一行放两个数据,所以第二个参数输入二即可。回车之后可以看到我们提取的数据变成了一维表的形式。 做到这一步,我们还差一个门店名称,所以我们可以输入一个 h s tech 函数,用来把门店拼起来。 h s tech 的 第一个参数就是门店 回车之后,可以看到有些空白的地方返回了 n a, 那 么我们再嵌套一个 if n a 函数 判断,如果是 n a, 则啊返回门店这个单元格,这样我们就把第一啊一个门店的数据整理出来了。接下来我们需要把所有的门店数据都做出来,所以可以嵌套一个 reduce 函数, 第一个参数我们输入一个空白啊,第二个参数,我们框选门店 后边这一列,为了更方便观看,我再在这里换一行来写公式。这里我们要给 reduce 的 第一第二参数定义名称,然后在 lambda 里面写计算过程,我们给空白定义为 w, 给 b 列的数据定义为 x, 随后我们要横向的拼接 w x, 那 么就是在后面写 vs tech 函数。第一个要拼接的就是 w, 由于我们定义的 x 就是 b 一 二到 b 十二,那么 a 号对应的就是 x 左边的这一个单元格,所以我们可以用偏移函数,要根据 x 找到 a 号单元格, 也就是说 a 二单元格在 b 二的左侧,从 b 二到 a 二要往左偏移一列,所以我们可以改成 off the set 函数, 第一个参数就是 x, 跳过第二个参数,第三个参数就是负一,也就是往左偏移一列。后面的这个 b 二单元格,我们在开头就已经把啊 b 二到 b 十二定义为了 x, 所以这里可以直接改为 x, 后面这个单元格依然改为 offset 函数,直接复制粘贴过来即可 啊。最后补齐三个括号回测看结果,可以看到啊,每个门店的数据已经被提取出来了啊,但但这里我们不需要 reduce 返回的第一行结果, 所以可以在最前面嵌套一个 drop 函数来屏蔽掉第一行啊。屏蔽掉第一行之后啊,这就是我们接下来要用到的数据源了 啊。我们在最前面输入一个 let 函数,把我们刚才写好的数据源,也就是这些公式定义为 data 之后,我们在下面输入 piper by 函数,调用 data。 这里我先补齐括号第一个参数行字段,也就是 data 的 第一列, 因为 data 的 第一列对应的就是门店这一列。可以用 choose cools cools 函数取 data 的 第一列。我们输入 choose cools 函数,第一个参数就是 data 第二个参数我们输入 e, 代表着取 data 的 第一列。 piloted by 的 第二个参数列字段,我们要取的就是水果名称这一列,所以可以用 choose cause 函数取 data 的 第二列。 第三个参数值字段,也就是数量这一列。我们继续用 choose cause 取 data 的 第三列。 但这里要注意,由于我们的这三列数据全部就全部是由正则提取出来的,正则是文本处理函数,所以他提取出来的内容全部是文本格式, 那么这里我们需要给他添加两个减号转为数值,不然无法计算下一个参数。我们选择三相加标头,这里选择零总计,这里选择总计,或者你也可以选择零行 排序,这个参数可以跳过下面这个按列合计,可以选择无总计,你也可以选择总计, 那么这就是一个完整的公式,我们看结果,我们看结果,这样我们就按照门店统计出了每个水果的总重量,是不是也非常简单,你学会了吗?每天五分钟带你学习更多小知识!

大家好,我是 mikai 分享,今天我们给大家介绍 power tomat, 实现正则表达式匹配字符串。一般情况下,在 power tomat 中想要从文本中提取满足条件的字符串, 我们可以通过 index o 加 sub stream 来进行提取。但是很多时候,例如提取身份证,提取邮箱,或者是提取 文件的文件名和拓展名,用 index o 加 sub skin 会显得比较复杂。从文本中提起字符颤,正则表达式是一个利器,所以我们今天给大家介绍 portomate, 借助正则表达式来匹配我们的字符串。由于在 plot 内容的内置方法中并没有提供正则表达式这么一个功能,所以我们这边主要借助于 excel online round scripts。 首先我们可以打开我们的 excel online, 然后在 教嗯烂中点击这边的 automate, 大家注意一定是 excel online, 点击 automate, 点击一个 newscript 来帮助我们执行正则表达式的函数。这边的代码大家可以通过关注米可爱分享搜索 poor automate 实现正德表达式。品味自我站就能看到我们这边的 office 三六五的 scripts, 我们将这边的 script 进行复制,然后粘贴到我们这边进行替换。大家可以修改你这边的名字,比如说我这边取名为 excel r e g x rejects, 正则表达是,然后点击 save, save 成功之后,然后我们就可以在我们的 power tomat 中使用。接下来大家通过 power tomat 中创建一个新的 flow, 我们可以点击 instance class flow, 大家可以在 flow name 这边选择你喜欢的一个名 字,然后我们这边可以选择 power apps v two, 我们这边就直接以我已经创建好的这么一个 power apps follow 来进行介绍,大家看到我们这边提供了三个参数,第一个参数是 rejects input, 代表的是你一个原始文本,你要从什么样的文本中进行提取。 然后第二个参数代表的是 retex pattern, 就是说你正在表达式的一个匹配内容,就是我们的邮箱的匹配,或者是自助餐的, 或者是身份证的匹配,大家就输在这边。然后 flax 就是我我们正则表达出的一个 flag, 这是我们 part 的的对应的参数,也对应于我们这边 excel of the script 对应的三个参数, input, s 键, pattern 和 flex。 然后我们就需要调用我们的 excel online ruscripts, 大家可以通过这边点击 app 的 action, 然后搜索 run scripts, 大家就可以点击这边的 runk scripts。 run script 中我们依次指定以下几个参数,大家选择你 o 三六五的数据连接,然后选择 location 是 one job, 然后 document 的 library 也是忘记 app fail 这边的话代表的是我们执行这个脚本的 excel 文件,那么我这边大家可以任意选择一个文件,因为我们主要的是执行中的代码,并不会操作文件中的数据,所以这边的文件大家可以任意选择,但是一定要填。然后 scripts 就是我们刚刚 保存的 scripts, 那么我这边用的是我之前的 excel rejects match 它的输入,三个输入参数对应有我们从 power or apps 传进来的三个参数, rejects input, rejects pattern 以及 rejects flag。 这个 wrong scripts 执行完之后,我们就将我们这边的一个 个 excel office script 执行之后的结果,然后直接作为一个输出给大家看到,我们这边就是直接返回的 run scripts 的一个输出结果,也就是他的一个 items 输出结果。接下来我们以文章中的一个小势力来进行演示,就是说我们实现提取链接中的文件名以及拓展名 原始输入,那么就是我们这边的一个链接,我希望获取它的一个文件名以及拓展名,也就是三 i k s a 点 p n g。 那么在我们的 pro opt 中,我们点击 test, 点击 test, 在输入中我们首先输入的是链接地址,然后我们输入一个正则表达式的匹配,接下来再输入一个 flex g m, 三个输入参数叠出之后,我们点击 round flow, flow 运行成功之后,我们来查看一下 运行结果,点击这最上面的一条记录,我们看一下 inpus 就是我们刚刚传入的三个输入, 主要的我们就是 respond to a power up or flow, 大家就能看到,这就是我们传出的一个结果,也就是说我们的 results 就是我们的三 i k s a 的偏计。我们这样我们就实现了 power tomat, 借助 offer the scripts 来实现匹配正则表达式反复满足条件的内容。如果你对 视频中内容感兴趣,欢迎大家关注米可爱分享订阅 pop automate 合集搜索 poutmate, 实现正则表达式匹配四五串就能看到我们详细的文字描述,以及视频中所烈酒的 office scripts 代码和我们的一个测试视力的一个正则表达式。欢迎大家点赞收藏关注!

好的,现在开始呢,就是要讲解本章节的核心代码,这个点映扣的方法就是核心中的核心,哎,我们一步一步来介绍一下,当然代码是本节课中核心中的核心点映扣的短短七个字母完成了四步操作,哎,首先我们以这个,你好介绍一下 ai 自然语言处理一加一等于二这个题型,可以看到这个文本它什么字母都有,有中文字,有英文字,有 感叹号,有数数字也有这个等号符号,对吧?好,第一步他把这个文本进行着正则切割,用 regx 把这个字母串 lines 切成碎块啊,块二的这个分词器的 regx, regx 长这个样子。首先第一,首先呢第一个规则就是英文抓取器,大白话就是它长这个样子,当然我们人是看不懂的,我直接讲就是意思它专门盯着英文里面的 撇号和缩写啊,不管看到大小写,只要看到撇,它就会单拎出来,比如 i m 就 会变成 i 撇 i 和撇 m, ok, 好, 下一步就是单词汉字抓取器, 他要抓取连续的字母,哎,如果字母就不是空格,他就直接带上,例如 hello 和你好,他会帮当做一个整体给抓走, ok, 接下来是数字抓抓取器,他只要看到一个数字就一个个切开,哎,他只要就是数字,他就当成一个个符号,哪怕是一二三,一百二十三这个数字,他会一二三,哎,三个变成三个,好,接下来是符号抓取器和乱码抓取器,只 要是标点符号,特殊表情会奇怪字母,他就会一起带走,比如说像感叹号这个微笑的表情,他全会一起带走, ok, 好, 然后 换行符和抓机器,只看到回车,他就专门打包成一个快,哎,表示段落结束什么的,直接打包带走。好。空格清理器,他看到这个 剩下的空格,会把前面规则没抓走的空格全部收集起来啊,加到一起,加到总列表中,所以我们来看一下最后的变化。经过 rex 这第一步,他把这句话变成了,哎,你好,感叹号,介绍一下, ai 空格自然语言处理空格,一加一等于二,哎,一步一步拆成这个样子,这是一步粗切,好,接下来要进行一部 utf 八映射, 将每个代码块,哎,比方说这些按照 utf 八转成十六,进至自结码,比如说,比如说你好中的你 utf 八是 e 四 b d a 零,对吧?好,是 utf 八的 e 五 a 五 b d, 你 好,就变成了 e 四 b d a 零, e 五 b d, 好, 这时候人类已经看不懂了, ok, 好, 接下来要进行一步,以马甲印刷。我们做的这个 tokenization 算法叫做 bpe 编码 encoding, 就是 自结对编码 e p e 的 底层逻辑,它是处理字母字母的,就是一个 character, 比方说刚的啊,这个 e 和五,它就是两个字母,两个 character, ok, 在 u t f 八中, e 四、 b、 d 都是不可分割的整体,但 b p e 看到就是 e 四 b、 d 这四个字母啊,这就坏事了,这样就破坏了这个逻辑结构,所以我们要把它这个 e 四拼成一个整体, 进行一部马甲印刷。哎, e 四变成这个 a 点点,哎,这个 a 点点我也不知道叫什么,它就是一个,你可以当做火星文,我们就把它叫做马甲字母,它的作用仅仅是把 e 四这个整体,这个 utf 八的整体变成。就是啊,从两个字母变成一个字母,便于这个 读取。所以你好,从 e 四 b d a 零 e 五, a 五, b d 变成了这个 a 点点二分之一点点,这有个看不见的空格啊,然后就是 a a 句号,然后一个人民币符号,然后一个二分之一,哎,就长这个样子。 哦,就是大家人是看不懂,但是他有规则,可以看懂。 ok, 从这一步的感叹号这一步后面他不再会有这些逗号之前,所以后面的感叹号介绍啊 的内容也会加进来,变成不再有风格。感叹号变成这个,所以你好,介绍一下,自然也变成了,呃,这个,这一整个乱码差不多 一个火星文论嘛,当然机器是看得懂的。 ok, 整体来说就是长这个样子,大家可以简单参考一下。好,现在切分到最细之后,它还要进行一波 merge 合体,分词器会参考 merge 点 t 叉 t 里面的规则,把一些常用的马甲给它合并起来,一直合并到不能,不能,一直合并到最简,不能合并为止,这是 token 的 马甲形式。 ok, 好,第五步要进行一个词表映设,给每个 token 寻找 vocab 里面的对应 id, 把 token 转化成零到一五一六四二。哎,这十五多万个数字中的一个。哎,此时不同的 id 会用逗号隔开, vocab 是 列表,有若干的 token id。 好 的,我们现在来简来简单看一下,就是 vocab 词表长啥样吧。哎,它大概就是长这个样子,比方说自然这个字就在这里, 自然语言处理的自然,它就在这里,它的它的 id 是 九九七九五,这东西就是最后它自然代表的量。 ok, 刚才提到了这个 word 规则,我们来看一下,就是它简单来说就是有很多很多,大概是刚才那个大概一百万级别的 word 规则出来。 ok, 比方说这个实在和事碰到一起,它就会合并成实在事,售和后拼到一起就变成售后,对不对?哎, 所以它是会把一些常见的组合词给它拼到一起的。 ok, 好 的,我们经过了五步的变化,终于从自然语言变成了 一个很长的数字串,对不对?每一行都是很长的数字串,那我们现在就要给给这个 buffer tokens 给它加进去,哎, send 就 表示在列表后面加入这些内容,你看,第一行处理完 all to 就是 这个 buffer tokens 啊,可能是这个一二三,第二行处理完,假设 id 是 四五,那这个 buffer tokens 就 变成了一二三四五。在 for 循环结束之后, all tokens 就 内存就存着这个全书数百万个 token 组成的超长数字列表。好的,那为了让模型知道一行结束了,我们要在每一次结束之后加上一个 e o s 符号,哎,这个 tokenizer 点 e o s token, 让模型知道一行结束了,否则,哎,比方说 一行的第一行的结尾是我做偶像是因为啊,第二行的开头是苹果很好吃,模型会学到我做偶像是因为苹果很好吃这种强行拼接的逻辑啊,那这样就不对了,对吧?