当前位置: 首页 > news >正文

VBA之正则表达式(42)-- 提取代码中变量名称

实例需求:待处理代码段如下所示,现在需要提取其中的变量名称。

Public pFactor As Integer
Sub TestCode()
Dim reg As New RegExp, a As Workbook
Dim ms As VBScript_RegExp_55.MatchCollection
Dim m As VBScript_RegExp_55.Match
Dim i, j
Dim x1, y1, z1 As String
Dim x2 As String, y2, z2
Dim x3, y3 As String, z3
Dim x4 As String, y4 As String, z4
Dim i2$, j2&, k2#
Const PRE_RATE = 2.5
End Sub

示例代码如下。

Sub Demo()Dim sText, objRegexp, objMH, objMHs, objMHVars, objMHVarsText = Trim([a1])Set objRegexp = CreateObject("vbscript.regexp")objRegexp.IgnoreCase = TrueobjRegexp.Global = TrueobjRegexp.Pattern = "\b(?:Public|Private|Static|Const|Dim)\b(.+)"Set objMHs = objRegexp.Execute(sText)objRegexp.Pattern = "(\w+)[^,]*"For Each objMH In objMHsSet objMHVars = objRegexp.Execute(objMH.submatches(0))For Each objMHVar In objMHVarsDebug.Print objMHVar.submatches(0)NextNextSet objMH = NothingSet objMHs = NothingSet objMHVars = NothingSet objMHVar = NothingSet objRegexp = Nothing
End Sub

【代码解析】
第3行代码读取待处理文本。
第4行代码创建正则对象。
第5行代码设置正则匹配忽略字符大小写。
第6行代码设置正则全局匹配。
第5行代码设置正则匹配模式。

正则表达式说明
`\b(?:PublicPrivate
(.+)匹配至少一个任意字符,第一个匹配组

匹配结果如下图所示。
在这里插入图片描述

第8第行代码执行正则匹配。
第9行代码设置第2此正则匹配模式。

正则表达式说明
(\w+)匹配至少一个(数字、字母、下划线)字符,第一个匹配组
[^,]*匹配非逗号字符,可以不存在

匹配结果如下图所示。
在这里插入图片描述

第10~15行代码循环遍历匹配结果。
第11第行代码再次执行正则匹配。
第12~14行代码循环遍历第2次匹配结果,第13行代码输入匹配结果。

相关文章:

VBA之正则表达式(42)-- 提取代码中变量名称

实例需求:待处理代码段如下所示,现在需要提取其中的变量名称。 Public pFactor As Integer Sub TestCode() Dim reg As New RegExp, a As Workbook Dim ms As VBScript_RegExp_55.MatchCollection Dim m As VBScript_RegExp_55.Match Dim i, j Dim x1, y…...

Unity Lightmapping Setting

如下图: Lightmapper: 使用什么硬件或算法渲染 Progressive CPU、Progressive GPU、Enlighten(新的算放目前用的比较少) 此数值会被用于分别乘以Direct Samples,Indirect Samples和Environment Samples这三个数值。这三个数值会被应用于…...

Android 12.0Camera2 静音时拍照去掉快门声音

1.概述 在12.0定制化开发时,在Camera2静音情况下有快门拍照声音,这就不符合使用规范了 静音的情况下拍照也不应该发出声音,所以在静音拍照流程中要求去掉快门声音 2.Camera2静音拍照去掉快门声音核心代码 Camera2拍照主要代码:/packages/apps/Camera2/src/com/android/cam…...

Win11硬盘分区

电脑重装了Win11系统,按WinE打开主文件夹,再点击此电脑,发现: 磁盘只有一个C盘。硬盘的所有空间都在该盘上了,那么我们怎么将其分区呢? Win11硬盘分区步骤: 步骤1: 按WinR输入dis…...

访客管理系统:Lobby Track Crack

Lobbytrack桌面 for 微软视窗 一个强大的、功能齐全的现场访客管理系统解决方案。在本地管理您的数据,网络工作站一起配置访客管理流程的各个方面。 扩展您的系统将本地 Web 模块 添加到您的 Lobbytrack 桌面系统,并允许您的员工使用本地 Intranet 上的 …...

Lidar AI Solution环境配置

目录 Lidar AI Solution环境配置前言1. Lidar AI Solution1.1 Pipeline overview1.2 GetStart 2. CUDA-BEVFusion2.1 3D目标检测(nuScenes验证集)2.2 演示2.3 模型和数据2.4 前置条件2.5 快速开始推理2.5.1 下载模型和数据到CUDA-BEVFusion文件夹2.5.2 配置environment.sh2.5.3…...

子串--子字符串 0528

210102 201012 A1A2…An An…A2A1 如何做, 翻转的是21,因为2>1; 翻转的是210,因为2>0; 翻转的是2101,因为2>1; 翻转的是21010,因为2>0; 翻转的是210102,因为22且1&…...

大数据教程【01.04】--excel的使用

更多信息请关注WX搜索GZH:XiaoBaiGPT Excel中的大数据处理 Excel是一款功能强大的电子表格软件,它广泛用于数据处理和分析。对于大数据处理,Excel提供了多种功能和工具,可以帮助用户处理大量的数据。在本教程中,我们…...

Java输入输出流

目录 一、数据流概念 1.输入输出的概念​ 2.流的概念 3.流的操作 二、常用的流分类 三、文件输入输出流 1.FileReader和FileWriter 2.FileInputStream和FileOutStream 四、复制文件 一、数据流概念 1.输入输出的概念​ 输入输出技术用于处理设备之间的数据传输&#x…...

1688商品ID采集一件代发详情页面数据

本篇博文介绍了对1688商品详情API的二次封装,将URL参数封装成Python函数,直接传入参数即可获取搜索结果,例如1688商品标题、价格、一件代发、sku属性和URL等。提供了详细的代码示例和接口调用Demo。 1688.item_get-获得1688商品详情数据 1.请…...

丽江“美丽县城”建设,高精度地籍免像控案例分享

一、项目背景 云南省地矿测绘院于2020年6月承接丽江市玉龙县“美丽县城”建设项目1:500倾斜摄影及地形图测绘项目。项目要求对玉龙县城区及其周边等约30平方公里区域进行优于3CM倾斜摄影测量。 并基于三维模型完成地形高程点、地貌、地物特征点的采集成图&#xf…...

我是如何精通软件工程的

软件工程是一个庞大且不断演化的领域,涉及许多创新。虽然如此,大多数技术 —— 如果不是全部 —— 在软件工程中往往最终汇聚为几个基本原则。工程师更好地掌握软件工程的方法是熟悉软件工程的基础知识,而不是那些不断变化的框架、语言或平台…...

如何使用 Python Nornir 实现基于 CLI 的网络自动化?

在现代网络环境中,网络自动化已成为管理和配置网络设备的重要工具。Python Nornir 是一个强大的自动化框架,它提供了一个简单而灵活的方式来执行网络自动化任务。本文将详细介绍如何使用 Python Nornir 实现基于 CLI 的网络自动化。 1. Python Nornir 概…...

并发编程的三大特性之有序性

有序性的概念 Java文件在被cpu执行前会进行编译成cpu可以执行的指令,为了提高cpu的执行效率会对其中的一些语句进行重排序。Java指令最终是乱序执行的目的是为了提高cpu的执行效率,发挥cpu的性能 单例模式由于指令重排可能会出现上述的问题&#xff0…...

LeetCode:相交链表(java)

相交链表 题目描述指针法解题 #LeetCode 160题:相交链表,原题链接 原题链接。相交链表–可以打开测试 题目描述 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返…...

利用PHP导出MySQL数据表结构和SQL文件

目录 一、获取数据库所有的数据表 方法一:TP5 方法二:原生PHP 二、导出指定数据表的数据结构 三、 导出SQL文件 四、生成SQL语句 五、完整代码 前端 后端 语言:PHP 数据库:MySQL 功能:分为四部分,① 查出数…...

接口测试框架分析

框架大体上已经写完了,不过说实话好多代码让我自己写我也写不出来,那该怎么办呢?很简单,把现在已经写好的代码保存起来,等用的时候拿出来复制粘贴就好了,如果你是大神,自己会写,那就…...

spring boot日志

日志介绍日志的使用日志级别日志持久化更简单的输入日志lombok的运行原理 日志介绍 日志的作用: 1:发现问题; 2:定位问题; 3:记录用户的行为:看哪些是方法用户;还能拿到用户的ip&am…...

【Vue2.0源码学习】虚拟DOM篇-Vue中的DOM-更新子节点

文章目录 1. 前言2. 更新子节点3. 创建子节点4. 删除子节点5. 更新子节点6. 移动子节点7. 回到源码8. 总结 1. 前言 在上一篇文章中,我们了解了Vue中的patch过程,即DOM-Diff算法。并且知道了在patch过程中基本会干三件事,分别是:…...

rsync

配置rsync源服务器: #建立/etc/rsyncd.conf 配置文件 vim /etc/rsyncd.conf #添加以下配置项 uid root gid root use chroot yes #禁锢在源目录 address 192.168.80.10 …...

硅橡胶资源平台对接的靠谱对接企业哪家强

在深圳这座创新与制造之都,硅橡胶产业上下游企业林立,从原材料、模具设计到制品生产,形成了一个庞大而复杂的产业链。对于许多企业而言,“深圳硅橡胶资源平台对接” 的需求日益迫切——无论是寻找稳定供应商、开拓新客户&#xff…...

vue3 diff算法中的-双端 Diff + 最长递增子序列 讲解

一句话总结 Vue3 Diff 双端比较(快速复用) 最长递增子序列(最小移动 DOM) 目的:在乱序节点中,只移动最少 DOM,实现最高效更新。1. 先搞懂:Vue3 对比 Vue2 差在哪? Vue2…...

FastAPI 2.0 + LLM流式输出全栈方案,含OpenAI兼容层、前端SSE重连策略、服务端背压控制(仅限内部技术白皮书级实录)

第一章:FastAPI 2.0 异步 AI 流式响应教程概览FastAPI 2.0 原生强化了对异步流式响应(StreamingResponse)的支持,为构建低延迟、高吞吐的 AI 接口(如大语言模型推理、语音合成、实时图像生成)提供了坚实基础…...

DOL-CHS-MODS整合包:从新手入门到定制开发的完整指南

DOL-CHS-MODS整合包:从新手入门到定制开发的完整指南 【免费下载链接】DOL-CHS-MODS Degrees of Lewdity 整合 项目地址: https://gitcode.com/gh_mirrors/do/DOL-CHS-MODS 一、需求定位:你属于哪种玩家类型? 场景描述 不同玩家对游…...

Arduino嵌入式SD卡逐行读取库ReadLines详解

1. 项目概述ReadLines 是一个专为 Arduino 平台设计的轻量级文件行读取库,核心目标是解决嵌入式系统中对 SD 卡文本文件进行逐行解析这一高频但易出错的操作需求。在资源受限的 MCU 环境下(如 ESP8266、STM32F103C8T6、ATmega328P)&#xff0…...

别再手动标图了!用CVAT和YOLOv5搭建半自动标注流水线(保姆级避坑指南)

从零构建CVATYOLOv5半自动标注系统:工程化实践与效率革命 标注数据是AI开发中最耗时却无法绕过的环节。我曾为一个客户项目标注3万张工业零件图像,团队3人整整耗费两周——直到发现CVAT与训练好的YOLOv5模型结合,能将效率提升400%。本文将分…...

永磁同步电机矢量控制仿真避坑指南:从PI参数整定到SVPWM模块优化

永磁同步电机矢量控制仿真避坑指南:从PI参数整定到SVPWM模块优化 在工业自动化和电力驱动领域,永磁同步电机(PMSM)凭借其高效率、高功率密度和优异的动态性能,已成为众多应用场景的首选。然而,要实现PMSM的…...

VictoriaMetrics 集群版实战指南:架构解析与最佳实践

1. VictoriaMetrics集群版架构深度解析 第一次接触VictoriaMetrics集群版时,我被它简洁的组件划分惊艳到了。与常见的时序数据库不同,它的三大核心组件vmstorage、vminsert、vmselect各司其职,这种设计让横向扩展变得异常灵活。在实际部署中&…...

揭秘JVM创世过程之Call Stub进入Java世界的门票

前言 本文旨在记录近期研读Java源码的学习心得与疑难问题。由于个人理解水平有限,文中内容可能存在疏漏,恳请读者不吝指正。 前情回顾 在揭秘JVM创世过程之两种语言首席外交官JavaCalls,一文中将JVM看作Java世界中一个拥有两种语言的领事馆…...

像素冒险工坊初体验:维度裂变器真实使用报告,文字创作从未如此有趣

像素冒险工坊初体验:维度裂变器真实使用报告,文字创作从未如此有趣 1. 走进像素冒险工坊 当我第一次打开像素语言维度裂变器时,仿佛穿越回了16-bit游戏黄金年代。这款基于MT5-Zero-Shot-Augment核心引擎构建的文本增强工具,彻底…...