- 博客(44)
- 资源 (1)
- 收藏
- 关注
原创 解析正则表达式/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/
2023-10-052023/10/05它能够捕获年、月、日、小时、分钟、秒和毫秒等部分,并且这些部分都是可选的。这使得该正则表达式非常灵活,适用于多种日期和时间格式的解析。
2025-03-08 15:11:51
408
原创 QSharedMemory 实现数据exe间共享
首先,需要定义一个结构体来包含要共享的数据。这个结构体应该包含所有需要在多个类的实例之间共享的成员变量。在读取数据的 exe 中,可以这样来获取共享数据。在写入数据的 exe 中,可以按照以下方式使用。
2024-12-31 16:43:11
93
原创 VMware ESXi 直通GPU
虚拟机需要独享GPU资源,那么就需要用到DirectPath I/O (直通),ESXi hypervisor 把 GPU 设备直接映射成虚机中的 GPU 设备,供应用使用。注意,内存注意一定要勾选预留,否则开机后报错如下:无法打开虚拟机 win10 的电源。1.ESXi主机,管理,硬件,PCI设备,勾选GPU卡,切换直通,会提示要求重启主机,重启主机之后,该GPU设备直通一栏显示为“活动”。先确认虚拟机是否EFI引导:编辑虚拟机 - 虚拟机选项 - 引导选项 - 固件 - EFI。
2024-12-31 11:44:36
4359
原创 如何让 VMWare 和 Hyper-V 共存
否则,在运行虚拟机时,VMWare Workstation/Player 会提示“开机时出错: VMWarePlayer 在此主机上不支持嵌套虚拟化。2.将 VMWare Workstation/Player 升级到 15.5.5 或更高版本。4.打开虚拟机的设置选项,找到“处理器”,去掉如图所示的三个选项前面的钩,点击“确定”。1.将 Windows 版本升级到 Windows 10 20H1 或更高版本。3.运行 VMWare Workstation/Player,新建或导入虚拟机。
2024-12-16 10:15:04
1663
原创 Qt中C++泛型实现ORM进行数据库与对象操作
ORM(Object - Relational Mapping)对象 - 关系映射是一种编程技术思想,核心是在面向对象编程语言和关系型数据库之间建立一种映射关系。它允许开发者使用面向对象的方式来操作数据库,而不需要直接编写 SQL 语句。在Qt中通过C++泛型编程技术实现ORM来操作SQLite数据库,通过低代码少SQL语句的ORM在各种QT项目中对数据库SQLite实现增删查改。
2024-12-16 09:40:37
429
原创 VMWare中直通显卡
在虚拟机中配置好显卡直通之后,开始安装显卡驱动,在虚拟机中安装Windows或Linux系统后联网,下载安装对应的显卡驱动,建议对于NVIDIA显卡,可以从NVIDIA的官方网站下载最新的驱动程序;对于AMD显卡,同样可以从AMD的官方网站下载。确定主板和处理器支持IOMMU技术,即Intel的VT-d或AMD的AMD-Vi,并在BIOS中开启。如果你的硬件不支持,则无法实现显卡直通。打开这些选项后,保存并退出BIOS设置。按照上述步骤即可完成显卡直通。
2024-12-13 11:39:59
9737
原创 QPointer讲义
QPointer本质上是一个模板类,其主要用途是提供一种能够自动检测所指向对象是否已被删除的指针机制。在 C++ 编程中,普通指针在指向的对象被释放后,如果继续使用该指针访问对象,就会导致未定义行为(比如程序崩溃等严重问题)。而QPointer解决了这个隐患,当它所指向的QObject派生类对象被销毁时,QPointer会自动将自身置为0(相当于nullptr),后续再通过这个QPointer去访问对象时,就可以通过判断其是否为0来避免出现错误操作。
2024-12-06 13:45:49
207
原创 负向零宽度断言
零宽度断言只能指定或匹配一个位置。而负向零宽度断言与零宽度断言恰恰相反,它能够指定或匹配不止一个位置,即所说的“反义”。特别是在匹配字符串中不包含指定的字符时,负向零宽度断言特别有用。称为负向零宽度断言或者零宽度负预测先行断言,它断言自身位置的后面不能匹配字符串experssion。称为零宽度负回顾后发断言,它断言自身位置的前面不能匹配字符串experssion。匹配单词字符串,且该字符串中的字符“a”之后不能为字符“b”。匹配长度为3的单词字符串,该字符串之后不能是数字字符串。
2024-12-04 17:49:42
88
原创 零宽度断言
正则表达式匹配以字符串“ed”结尾的单词的前面部分,即匹配单词的除字符串“ed”之外的部分。正则表达式匹配以字符串“an”开头的单词的后面部分,即匹配单词的除字符串"an"之外的部分。都匹配一个位置,且这个位置满足一定的条件,把满足的这一个条件称为断言或零宽度断言。零宽度正预测先行断言,它断言自身位置的后面能够匹配表达式experssion。零宽度正回顾后发断言,它断言自身位置的前面能够匹配表达式experssion。举例:\b\w+(?
2024-12-04 11:48:36
99
原创 字符运算-分组 “(” “)“
分组又称为子表达式,即把一个正则表达式的全部或部分分成一个或多个组。其中,分组使用的字符为“(”和“)”,即左圆括号和右圆括号。分组之后可以将在“(”和“)”之间的表达式看成一个整体来处理。匹配的字符串重复3次,如“1.2.3.”、"12.34.56." . "123.456.789." . "888.899.569." 等。先匹配1~3位的整数,然后匹配一个字符““(点号),如“1.”、“12.”、“123.”、“888.”等。
2024-12-03 17:48:57
51
原创 字符运算-并行 “|”
能够匹配用连接符号连接的8位数字字符串或者5位的数字字符串。因为,该表达式首先尝试匹配用连接符号连接的8位数字字符串,只有当未匹配时,才匹配5位的数字字符串。使用字符“|”表示,它表示如果某一个字符串匹配了正则表达式中的字符“|”的左边或者右的规则,那么该字符串也匹配了该正则表达式。字符“|”在匹配表达式时,首先匹配|字符的左侧部分,当左侧部分不匹配时,它才尝试匹配“|”字符的右侧部分。只能匹配5位的数字字符串,而不会匹配用连接符号连接的8位数字字符串。
2024-12-03 17:18:46
53
原创 限定符使用
正则表达式的元字符一次一般只能匹配一个位置或一个字符,如果想要匹配零个、一个或多个字符时,则需要使用限定符。限定符用于指定允许特定字符或字符集自身重复出现的次数。正则表达式字符类[^>]匹配除过“>”之外的任何字符。正则表达式匹配“13”开头,后连续12个数字的字符串。
2024-12-03 17:01:09
347
原创 字符转义讲解
由于这些字符在正则表达式中被解释成其他的指定的意义,如果需要匹配这些字符,则需要使用字符转义来解决这一问题。转义字符为\,它可以取消这些字符(如。正则表达式的常用转义字符的说明如下所示。其中,除.、$、^、{、[、(、|、)、*、+、?、\之外的字符不需要进行转义,它们都表示字符本身。www\.baidu\.com正则表达式匹配字符串www.baidu.com。正则表达式定义了一些特殊的元字符,如。等)在表达式中具有的特殊意义。
2024-12-03 16:10:18
71
原创 字符类匹配
在正则表达式中,元字符通常一次只能匹配一个位置或字符集合中的一个字符。通常情况下,如果要匹配数字、字母、空白等字符时,可以直接使用与这些集合相对应的元字符。然而,如果要匹配的字符集合(如集合[0,1,2,3,4,5])没有与之相对应的元字符时,则需要自定义匹配的字符集合。字符类是一个字符集合,如果该字符集合中的任何一个字符被匹配,则它就会找到该匹配项。最简单的字符类由方括号“[]”和一个字母表构成,如元音字符类[aeiou]。以下正则表达式[0123456]匹配数字0、1、2、3、4、5、6中的任何一个。
2024-12-03 15:47:35
55
原创 匹配位置的元字符
在插入字时使用,只匹配一个位置,匹配行的开始。在插入字时使用,只匹配一个位置,匹配行的结尾。也匹配一个位置,可以匹配单词的开始或结尾。
2024-12-03 15:31:55
45
原创 匹配字符的元字符
匹配任意的空白字符,如空格、制表符、换行符、中文全角空格等。匹配单词字符(包括字母、数字、下画线和汉字)匹配除换行符之外的任意字符。匹配任意的非单词字符。匹配任意的非空白字符。匹配任意的非数字字符。
2024-12-03 15:22:22
50
原创 VitualBox中的网络模式网络配置
为虚拟机模拟出一个独立的网卡,有独立的IP地址,所有网络功能和主机一样,并且能够互相访问,实现文件的传递和共享。这里配置主机IP上的所有请求通过主机80端口转发到虚拟机80端口,即虚拟机里的nginx监听了80端口,最终显示nginx默认页面。这种模式下,虚拟机能够分配到网络中独立的IP地址,虚拟机所有网络功能和存在于网络中的实体机一样。1.在关闭防火墙的前提下,在网络设置中,点击端口转发,点击绿色加号标,修改主机IP和主机端口。点击您的主机正在使用的网络,双击–>属性—>共享,配置以下信息,点击确认。
2024-12-02 18:16:38
270
原创 Ubuntu 镜像下载资源
清华大学开源软件镜像站,致力于为国内和校内用户提供高质量的开源软件镜像、Linux 镜像源服务,帮助用户更方便地获取开源软件。本镜像站由清华大学 TUNA 协会负责运行维护。资源:清华大学开源软件镜像站 | Tsinghua Open Source Mirror。
2024-12-02 16:50:30
167
原创 HBuilderX 如何连接MuMu模拟器
开发一个平板大屏Android的应用,本身没有这个平板,只能使用模拟器了,雷神、雷电、逍遥、mumu等模拟器,相对来说,比较喜欢使用网易的mumu模拟器,虽然需要花点钱,但是运行不卡顿,还是比较推荐的。如何使用HBuilderX和mumu模拟器,实现HBuilderX直接运行项目到模拟器,不可能每次打包apk,然后在发到模拟器。6.配置HbuildX的adb工具,在HBuilderX点击运行->运行到手机或模拟器->Android模拟器端口设置。3.开启开发模式,就可以看到开发者选项 设置->系统。
2024-11-29 11:04:00
1214
原创 Hyper-v 虚拟机Win11直通显卡
2.在 Win11 系统中,点击 Windows 键,然后输入 “控制面板” 并打开,点击 “程序”,选择 “打开或关闭 Windows 功能”,勾选 “Hyper-V” 的选项,展开并确保选中所有子项,单击 “确定”,然后重新启动电脑。3.打开 Hyper-V 管理器,创建一个第二代虚拟机,并安装 Win11 系统,注意安装过程中不要开启检查点功能。如果是 A 卡,则需要将宿主机设备管理器中显卡驱动信息里的所有文件都复制到虚拟机的相同路径下。目录下,如果虚拟机没有该目录则需要自行创建,并设置。
2024-11-28 15:34:07
2836
原创 如何开启Hyper-v嵌套虚拟化在虚拟机中运行雷电模拟器
虚拟机Hyper-v,VMware ,virtualBox 在宿主机上安装以后配置了我们需要的操作系统win10,win11,ubuntn等,在这些虚拟机中我们继续安装虚拟机就需要嵌套虚拟化,所谓嵌套虚拟化就是需要在虚拟机中创建二层虚拟机。
2024-11-26 15:44:12
1432
原创 Qt5的正则表达式引擎不支持后行断言,字符串替换处理之二
由于Qt5的正则表达式引擎不支持后行断言,我们需要使用一种不同的方法。在Qt中,我们可以通过先匹配。,然后确保在接下来的字符中没有出现我们想要匹配的。,或者通过其他逻辑来手动检查。
2024-11-25 17:10:08
59
原创 Qt中,编写一个函数来支持后行断言
都不支持后行断言正则表达式,我们需要编写一个自定义函数来手动处理这个逻辑。以下是函数,它接受一个字符串,并检查该字符串是否包含。在这个函数中,我们使用了一个循环来遍历输入字符串。在每次迭代中,我们首先检查当前位置是否包含。如果找到了,我们就查找它的结束右括号,并跳过这个区域。如果没有找到结束的右括号,这意味着。这个函数应该能够满足你的需求,即检查字符串中是否包含。后面的内容都是无效的,我们直接返回。如果我们遍历完整个字符串都没有找到。,我们就检查当前位置是否包含。如果找到了,并且它前面没有。
2024-11-25 16:16:47
44
原创 正则表达式利用负向零宽断言举例
在正则表达式中,负向零宽断言(negative lookahead)和负向后行断言(negative lookbehind)是两种非常有用的模式,它们允许你指定在某个位置之前或之后不能出现某个模式。然而,需要注意的是,不是所有的正则表达式引擎都支持后行断言,特别是某些较旧或简化的实现(比如JavaScript在ES2018之前的版本)。由于Qt的限制,我们可能需要写更多的代码来手动处理这种情况,而不是依赖一个复杂的正则表达式。由于Qt的正则表达式引擎不支持后行断言,我们需要使用一种不同的方法。
2024-11-25 15:09:20
88
原创 正则表达式基础
6. 匹配开头和结尾:要匹配字符串的开头和结尾,可以使用“^”和“$”。例如,“/^hello$/”只匹配包含完整单词“hello”的字符串。例如,要匹配字符串中的字母“a”,可以使用正则表达式“/a/”。4. 匹配零个或多个:要匹配零个或多个前面的字符,可以使用“*”。例如,“/a*/”可以匹配零个或多个字母“a”。5. 匹配一个或多个:要匹配一个或多个前面的字符,可以使用“+”。例如,“/a+/”可以匹配一个或多个字母“a”。例如,“/\w+/”可以匹配一个或多个单词字符。
2024-11-20 17:08:55
91
原创 解析 URL字符串的正则表达式:/^(\w+):\/\/([^\/?#]+)([^?#]*)(\?[^#]*)?(#.*)?$/讲解
解析 URL(统一资源定位符)字符串 讲解
2024-11-14 09:52:46
129
原创 Virtualbox虚拟机迁移到Hyper-V
2.在Hyper-V中新建虚拟机,在如下步骤选择使用现有虚拟硬盘,并指定刚刚生成的.vhd文件。继续下一步就可以了。查找到本机virtualbox安装目录,在安装目录查找是否有VBoxManage.exe。VBoxManage.exe命令执行.\VBoxManage clonehd。使用管理员打开powershell。
2024-11-13 16:09:32
490
原创 Ubuntu下为应用建立快捷方式
1.为应用程序准备一个图标图片文件,把它放在和应用程序同一水平目录下。2.创建navicat.desktop文件。3.编辑快捷方式文件,然后保存关闭。
2024-09-09 15:25:07
381
原创 Win10 MySQL8.4的安装配置
MySQL8之前的版本中加密规则是mysql_native_password,而在MySQL8之后,加密规则是caching_sha2_password,解决问题方法有两种,第一种是升级图形界面工具版本,第二种是把MySQL8用户登录密码加密规则还原成mysql_native_password,幸运的是8.4版本有mysql_native_password,只是没有激活而已,在MySQL9以后的版本mysql_native_password被删除了。#查询mysql插件信息。#使用mysql数据库。
2024-08-14 13:45:01
569
原创 Ubuntu系统实时内核编译
RTOS(实时性操作系统),指系统的计算正确性不仅取决于计算的逻辑正确性,还取决于产生结果的时间。如果未满足系统的时间约束,则认为系统失效。 根据实际应用,可以选择采用硬实时操作系统或软实时操作系统。硬实时系统指系统要有确保的最坏情况下的服务时间,即对于事件的响应时间的截止期限是无论如何都必须得到满足。软实时系统就是那些从统计的角度来说,一个任务能够得到有确保的处理时间,到达系统的事件也能够在截止期限到来之前得到处理,但违反截止期限并不会带来致命的错误。
2024-07-24 17:43:34
774
原创 Ubuntu下cyclictest 实时补丁
程序会记录进程睡眠的开始时间t1而进程的实际睡眠时间时t2,但程序真正唤醒并运行的时间时t3。所以是t3-t2-t1得出的结果即为延时。
2024-07-24 15:14:12
481
原创 Qt Pro文件 递归搜寻添加所有代码文件 并添加库路径
功能:常用的pro打印,类似printf,Qt5中可以使用(Qt4不知道为什么不能用,可以在Qt5上调试好后放到Qt4上)将会打印出 My Source Files have ./src/main.cpp ./src/func.cpp。#为了Qt4的运行环境库路径自动设置,一定要手动写全路径,不能使用变量。#根据Path当层寻找.so和.a文件,返回相对路径。1:搜寻的文件模板路径有.cpp文件。#递归搜寻所有.cpp .h .ui文件。功能:返回文件的路径,不带文件名的。功能:返回文件名,不带路径的。
2024-07-11 17:54:43
489
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人