Back 引用 是说在后面的表达式中我们可以使用组的编号来引用前面的表达式所捕获到的文本序列(是文本不是正则)。...在Java中,支持的非捕获组,有如下几种: (?=X) X,通过零宽度的正 lookahead 即左侧匹配 (?!X) X,通过零宽度的负 lookahead 即左侧匹配 (?...仅当子表达式 X 在 此位置的右侧匹配时才继续匹配。例如,\w+(?=\d) 与后跟数字的单词匹配,而不与该数字匹配。此构造不会回溯。 (?!X) 零宽度负先行断言。...仅当子表达式 X 不在 此位置的右侧匹配时才继续匹配。例如,例如,\w+(?!\d) 与后不跟数字的单词匹配,而不与该数字匹配。 (?<=X) 零宽度正后发断言。...仅当子表达式 X 不在此位置的左侧匹配时才继续匹配。例如,(?不跟在 19 后面的 99 的实例匹配 说明: 非捕获组中四个表达式的区别: (?=X ) 和(?!
动态创建 DOM 方式: 动态创建 DOM 标签的方式,可以对文档的加载事件进行监听,当文档加载完成后再动态的创建 script 标签来引入 js 脚本。...HTTP/2 则是一个彻底的二进制协议,头信息和数据体都是二进制,并且统称为"帧",可以分为头信息帧和数据帧。 帧的概念是它实现多路复用的基础。...如果队首的请求因为处理的太慢耽误了时间,那么队列里后面的所有请求也不得不跟着一起等待,结果就是其他的请求承担了不应有的时间成本,造成了队头堵塞的现象。...----问题知识点分割线---- 水平垂直居中的实现利用绝对定位,先将元素的左上角通过top:50%和left:50%定位到页面的中心,然后再通过translate来调整元素的中心点到页面的中心。...0; left: 0; right: 0; margin: auto;}利用绝对定位,先将元素的左上角通过top:50%和left:50%定位到页面的中心,然后再通过margin负值来调整元素的中心点到页面的中心
用\1这种语法,可以引用某组的文本内容,\1当然就是引用第1组的文本内容了,这样一来,就可以简化正则表达式,只写一次title,把它放在组里,然后在后边引用即可。...=/d) 与后跟数字的单词匹配,而不与该数字匹配。此构造不会回溯。 (?!X) 零宽度负先行断言。仅当子表达式 X 不在 此位置的右侧匹配时才继续匹配。例如,例如,/w+(?!.../d) 与后不跟数字的单词匹配,而不与该数字匹配 。 (?的左侧匹配时才继续匹配。例如,(?...面的 99 的实例匹配。此构造不会回溯。 (?的左侧匹配时才继续匹配。例如,(?不跟在 19 后面的 99 的实例匹配 从断言的表达形式可以看出,它用的就是分组符号,只不过开头都加了一个问号,这个问号就是在说这是一个非捕获组,这个组没有编号,不能用来后向引用
接下来就是每一个单元格,横轴使用的字母,纵轴使用的数字,这样使用字母加数字就可以定位到一个单元格,如图所示,当前定位的位置是A1单元格。...,把每一行数据转成每一个对象,然后存放在容器中供后面的数据分析时使用。..., 90, 80, 90]] #循环写入数据 for i in data: ws.append(i) #保存成excel文件 wb.save("score.xlsx") 代码运行后,会在当前目录下创建一个...上一小节中已经了解了如何把数据写到Excel文件中,所以我们需要继续创建一个数据储存的方法,将爬虫功能完善,在后面增加一个数据保存的方法 #将数据保存到excel文件中 def saveData2Excel...如果你运行上面的示例代码,可能得出来的结果跟上图并不一样,甚至每一次运行的结果都不一样,这是因为在使用BeautifulSoup获取到的详情页面链接的列表结果是无序的,元素顺序并不跟页面顺序一样,所以抓取的内容顺序并不一样是正常的看到的顺序
之后当网络在处于离线状态下时,浏览器会通过被离线存储的数据进行页面展示使用方法: (1)创建一个和 html 同名的 manifest 文件,然后在页面头部加入 manifest 属性:的补间动画,设置一个开始关键帧,一个结束关键帧。animation是动画属性,它的实现不需要触发事件,设定好时间之后可以自己执行,且可以循环一个动画。...HTTP/2 则是一个彻底的二进制协议,头信息和数据体都是二进制,并且统称为"帧",可以分为头信息帧和数据帧。 帧的概念是它实现多路复用的基础。...如果队首的请求因为处理的太慢耽误了时间,那么队列里后面的所有请求也不得不跟着一起等待,结果就是其他的请求承担了不应有的时间成本,造成了队头堵塞的现象。...Not a Number,表示非数字,typeof NaN === 'number'深拷贝浅拷贝浅拷贝:浅拷贝通过ES6新特性Object.assign()或者通过扩展运算法...来达到浅拷贝的目的,浅拷贝修改副本
数组的初始化 动态初始化:在创建数组时,直接指定数组中元素的个数 静态初始化:在创建数组时不直接指定数据元素个数,而直接将具体的数据内容进行指定 【注意】: 1.静态初始化虽然没有指定数组的长度...程序计数器 (PC Register): 只是一个很小的空间, 保存下一条执行的指令的地址 虚拟机栈(JVM Stack): 与方法调用相关的一些信息,每个方法在执行时,都会先创建一个栈帧,栈帧中包含...当方法运行结束后,栈帧就被销毁了,即栈帧中保存的数据也被销毁了。 本地方法栈(Native Method Stack): 本地方法栈与虚拟机栈的作用类似....使用 new 创建的对象都是在堆上保存 (例如前面的 new int[]{1, 2, 3} ),堆是随着程序开始运行时而创建,随着程序的退出而销毁,堆中的数据只要还有在使用,就不会被销 毁。...方法编译出的的字节码就是保存在这个区域 2.2基本类型变量与引用类型变量的区别 基本数据类型创建的变量,称为基本变量,该变量空间中直接存放的是其所对应的值; 而引用数据类型创建的变量,一般称为对象的引用
这个在本次示例也对其进行了操作演示、由于我们计算机上电要初始状态、所以此时我们可以创建常量给字符串空、给数值常量0的数值。 ⑵函数编程当中的结构里面的平铺式顺序结构。...说明⇢ 包括一个或多个顺序执行的子程序框图(即帧)。 平铺式顺序结构可确保子程序框图按一定顺序执行。平铺式顺序结构的数据流不同于其他结构的数据流。...所有连线至帧的数据都可用时,平铺式顺序结构的帧按照从左至右的顺序执行。 每帧执行完毕后,将数据传递至下一帧。 即一个帧的输入可能取决于另一个帧的输出。...从偏移量位置开始,使字符串中的下列字符:0-9、加号、减号、e、E、小数点(通常是句点)解析为工程、科学或分数格式的浮点数,通过数字返回。 ⒉数值至小数字符串转换。...使数字转换为小数(分数)格式的浮点型字符串,至少为宽度个字符,还可依据需要适当加宽。连线板可显示该多态函数的默认数据类型。
中级语句 分组和捕获:() a(bc) 圆括弧会创建一个捕获性分组,它会捕获匹配项“bc” -> Try it!...匹配一个代表16进制数字的字符串,不区分大小写 -> Try it!...=r) 只有在后面跟着“r”的时候才匹配“d”,但是“r”并不会成为整个正则表达式匹配的一部分 -> Try it!...r) 只有在后面不跟着“r”的时候才匹配“d”,但是“r”并不会成为整个正则表达式匹配的一部分 -> Try it!...,例如检查时间字符串是否符合格式; 数据抓取,以特定顺序抓取包含特定文本或内容的网页; 数据包装,将数据从某种原格式转换为另外一种格式; 字符串解析,例如捕获所拥有 URL 的 GET 参数,或捕获一组圆括弧内的文本
从原理上可以看出,CADisplayLink适合做界面的不停重绘,比如视频播放的时候需要不停地获取下一帧用于界面渲染,或者做动画。...使用方法 创建GCD定时器定时器的方法稍微比较复杂,看下面的代码: 单次的延时调用 NSObject中的performSelector:withObject:afterDelay:以及 performSelector...创建的timer一定要有dispatch_suspend(_timer)或dispatch_source_cancel(_timer)这两句话来指定出口,否则定时器将不执行,若我们想无限循环可将 dispatch_source_cancel...代码链接 每个几分钟向服务器发送数据 在有定位服务的APP中,我们需要每个一段时间将定位数据发送到服务器,比如每5s定位一次每隔5分钟将再统一将数据发送服务器,这样会处理比较省电。...但是我在项目中的使用的GCD定时器确实是能在后台运行的,是因为我开启 Background Modes 中的后台持续定位,程序在后台依旧可以运行。 创建方法同上面的短信倒计时.
如果您在命令行上遇到安装问题,可以查看pygame的安装教程。 在后面的步骤中,我们将假设使用监视器来显示图形用户界面,作为本教程的一部分来验证我们的代码。...请注意,元组包含在函数的括号中,因此上面的函数中有双括号。 您可能经常使用整数来解决游戏的分辨率,因此您可能希望将这些数字分配给变量,而不是一次又一次地使用这些数字。...更新显示 接下来,我们需要使用两个可用函数之一来更新游戏表面的显示。 动画通常是随着时间的推移在不同帧之间的变化。在考虑动画时,您可能会想到一本翻书,因为它们包含一系列从一页到下一页逐渐变化的图像。...创建游戏循环 随着pygame的导入和初始化,显示集以及游戏界面的更新,我们可以开始处理我们的主游戏循环。 我们将创建一个运行游戏的while循环。...从这里开始,您将继续学习如何通过绘图和精灵显示图像,动画图像和控制帧速率等。您可以通过阅读官方pygame文档继续了解pygame游戏开发。
古老的输入法就是通过判断获得焦点的句柄是支持输入和判断他需要什么输入,如果在 win7 的搜狗,就是这样判断,于是搜狗很难在 Popup 的 TextBox 输入文字。...如果刚好两个方法都不能使用,那么通过代码也可以解决。...解决的方法是让输入法知道控件的句柄,这需要一个 win32 的 dll ,传说中的 User32.dll ,这个dll有SetFocus这个方法,请通过下面的代码在Popup打开时调用。...刚刚 Siberia 问了我一个问题,为什么 WinForms 弹出的 WPF 的文本框无法输入数字,但是可以输入其他的内容 一开始我认为的是绑定的问题,如果一个控件绑定了另一个控件,或者有后台代码绑定...,但是没有 TextChanged 收到输入,这时因为 WinForms 弹出的 WPF 程序消息循环的键盘事件的问题,对于中文的输入,有输入法在 HasKeyboardFocusCore 拿到输入,但是如果数字不经过输入法就在
\d 匹配数字型的单个字符 -> Try it!...匹配一个代表16进制数字的字符串,不区分大小写 -> Try it!...=r) 只有在后面跟着“r”的时候才匹配“d”,但是“r”并不会成为整个正则表达式匹配的一部分 -> Try it!...r) 只有在后面不跟着“r”的时候才匹配“d”,但是“r”并不会成为整个正则表达式匹配的一部分 -> Try it!...,例如检查时间字符串是否符合格式; 数据抓取,以特定顺序抓取包含特定文本或内容的网页; 数据包装,将数据从某种原格式转换为另外一种格式; 字符串解析,例如捕获所拥有 URL 的 GET 参数,或捕获一组圆括弧内的文本
除了 JS 引擎之外,浏览器中还包含诸如发送 HTTP 请求、监听 DOM 事件、延迟执行 setTimeout 或 setInterval、缓存、数据存储等各种应用逻辑,正是这些特性帮助了我们创建富...这些 Web APIs 是 异步的,意味着我们可以一边命令这些 APIs 在后台默默做事并在完成后返回数据,一边继续执行更多的 JS 代码。...后移动到该函数中的下一行;一旦该函数中碰到了 return 语句,该函数就被移出栈,并进入下一个栈帧 同时,Web API 在后台执行其关联了 callback 的任务;任务一完成,Web API 就将执行结果和...Philip Robers 已经创建了一个令人赞叹的在线工具以可视化 JS 底层的工作机理。上面的例子运行如下: ? 2....Node.js 也使用了 Google’s V8 engine 提供 JS 运行时,却没有局限于其事件循环;而是使用 libuv库 (用 C 写的) 与 V8 的事件循环一同工作,从而扩展了可以在后台所做之事
主要原因包括: 1)4D 雷达是一项相对较新的技术,因此这方面的研究还很有限。...展示了两个选定数据集的绘图结果:(b) 花园。(c) 沿着校园主干道。 本文提出的 4DRadarSLAM 是一个由前端、环路检测和后端三部分组成的完整系统。在前端,通过扫描匹配来计算里程。...2.4 环路检测 在这一步中,每个关键帧都会与数据库关键帧进行比较,以确定其是否形成循环闭合。...1)循环预过滤:为了避免搜索整个数据库进行循环检测,循环预过滤步骤根据以下四条规则识别潜在的循环:i) 遵守距离限制,即新循环的查询帧不能离上一个循环的查询帧太近,一个循环的帧也不能太近;ii) 确保一个循环的帧在一定的半径范围内...在后端,基于前端里程计、检测到的回环和GPS数据构建位姿图。使用我们自采集的数据集进行了大量的实验,这些数据集涵盖了各种环境和速度,包括结构化和非结构化、小规模和大规模环境、低速和中速。
可以看见里面的 prebuilt_protobuf 目录下就有我们使用 build_proto.sh 生成的 Cpp 文件,这些文件就是可以共用的。...2.当视频处于 playing 状态时,它的 drawFrame 方法就会不断被 WSMediaPlayerView 通过定时循环调用并从 VideoDecodeService 中取出当前帧通过 Open...5.AudioPlayer:当视频处于 playing 状态时,它也会不断被 WSMediaPlayerView 通过定时循环驱动着从 AudioDecodeService 中取出当前的音频帧,然后通过反向代理将音频帧交给....stringBuilder 和 times 是用来记录测试数据的就不说了 2.这里然后调用了 setProject 方法,进过一系列调用链后会通过 jni 进入到代码块3 1.将 buffer 反序列化成...其实这里的代码可以类比为视频的播放,VideoDecodeService 不断地在后台线程进行解码按顺序将视频帧放入到队列中,本线程则不断的从队列中取出一帧进行消费,就像视频帧被渲染到屏幕上一样。
从原理上可以看出,CADisplayLink适合做界面的不停重绘,比如视频播放的时候需要不停地获取下一帧用于界面渲染,或者做动画。...###使用方法 创建GCD定时器定时器的方法稍微比较复杂,看下面的代码: ####单次的延时调用 NSObject中的`performSelector:withObject:afterDelay:`以及...在有定位服务的APP中,我们需要每个一段时间将定位数据发送到服务器,比如每5s定位一次每隔5分钟将再统一将数据发送服务器,这样会处理比较省电。...一般程序进入后台时,定时器会停止,但是在定位APP中,需要持续进行定位,APP在后台时依旧可以运行,所以在后台定时器也是可以运行的。...GCD定时器也可以在后代运行,创建方法同上面的短信倒计时.
我们已经能够加载 YUV 帧并显示了,那是把一张图片转换成 YUV 帧得到的素材。 如果是一个 YUV 视频文件的话,那就是很多 YUV 帧连续在一起,既然能展示一帧,那肯定可以连续展示多帧。...// 打开文件 和 创建纹理 的代码和前一篇一样,不在放上来了 if (texture !...SDL_RenderPresent(renderer); } SDL_DestroyWindow(window); SDL_Quit(); } 打开文件和创建纹理代码内容和前面的一致...可以通过自定义 SDL 事件,然后根据帧率控制自定义事件的发送速率,实现控制播放速度的目的。...另外,这里有很多参数都是事先知道的,比如视频宽高数据,在后面我们将通过 FFmpeg 来得到这些数据,实在真正的解码播放。 总结 以上就是音视频基础学习连载的 005 篇。
2.2 以太网和IEEE 802封装 以太网这个术语一般是指数字设备公司( Digital Equipment Corp.)...图 2 - 1显示了两种不同形式的封装格式。图中每个方框下面的数字是它们的字节长度。...在 8 0 2标准定义的帧格式中,长度字段是指 ? 它后续数据的字节长度,但不包括 C R C检验码。以太网的类型字段定义了后续数据的类型。...在以太网帧格式中,类型字段之后就是数据;而在 8 0 2帧格式中,跟随在后面的是 3字节的802.2 LLC和5字节的802.2 SNAP。...C R C字段用于帧内后续字节差错的循环冗余码检验(检验和)(它也被称为F C S或帧检验序列)。 8 0 2 . 3标准定义的帧和以太网的帧都有最小长度要求。
选取被除数前面的1010模2除以除数1101,因最高为是1,所以,得到商1,余数通过1010和1101的模2减法获得,根据前面的模2减法运算的介绍,其运算结果和异或运算一模一样。...按照上图依次计算,可以得到最终的商110101,余数001。 从上面的示例,我们看到一个规律:每循环一次模2计算,如果得到的被除数最高位是0,则一轮循环使用0000作为除数。...因为在发送端发送数据帧之前就已通过附加一个数,做了“去余”处理(也就已经能整除了),所以结果应该是没有余数。如果有余数,则表明该帧在传输过程中出现了差错。...具体来说,CRC校验原理就是以下几个步骤: 先选择(可以随机选择,也可按标准选择,具体在后面介绍)一个用于在接收端进行校验时,对接收的帧进行“模2除法”运算的除数(是二进制比较特串,通常是以多项方式表示...再把这个校验码附加在原数据帧(就是m位的帧,注意不是在后面形成的m+k-1位的帧)后面,构建一个新帧发送到接收端,最后在接收端再把这个新帧以“模2除法”方式除以前面选择的除数,如果没有余数,则表明该帧在传输过程中没出错
它扩展了UIImage 支持动画WebP, APNG和GIF格式的图像数据解码。它还 支持NSCoding协议,以存档和反存档多帧图像数据。...a、animatedImageMemorySize 如果所有帧图像都被加载到内存中,那么总内存使用(以字节为单位)。 如果图像不是从多帧图像数据创建的,则该值为0。...可以用来播放多帧动画以及普通动画,可以控制、暂停动画 当设备有足够的空闲内存时,这个视图及时请求帧数据。 这个视图可以在内部缓冲区中缓存一些或所有未来的帧,以降低CPU成本。...[YYImageDecoder decoderWithData:data scale:scale];//创建解码类 YYImageDecoder 对象,紧接着更新数据 4、result = [self...scale 选择图片 /** 一个NSNumber对象数组,根据不同的系统scale返回数组内部不同顺序的数字 e.g. iPhone3GS:@[@1,@2,@3] iPhone5:@[@2,@3,@
领取专属 10元无门槛券
手把手带您无忧上云